[evolvis-commits] r4850: Move plugins from root dir to plugins. test dir↵

cbayle at evolvis.org cbayle at evolvis.org
Fri Feb 26 01:19:09 CET 2010


Author: cbayle
Date: 2010-02-26 01:19:01 +0100 (Fri, 26 Feb 2010)
New Revision: 4850

Added:
   trunk/gforge_base/evolvisforge/plugins.test/helloworld2/
   trunk/gforge_base/evolvisforge/plugins.test/helloworld2/INSTALL
   trunk/gforge_base/evolvisforge/plugins.test/helloworld2/bin/
   trunk/gforge_base/evolvisforge/plugins.test/helloworld2/bin/sayhello
   trunk/gforge_base/evolvisforge/plugins.test/helloworld2/common/
   trunk/gforge_base/evolvisforge/plugins.test/helloworld2/common/HelloWorldPlugin.class
   trunk/gforge_base/evolvisforge/plugins.test/helloworld2/common/helloworld-init.php
   trunk/gforge_base/evolvisforge/plugins.test/helloworld2/common/languages/
   trunk/gforge_base/evolvisforge/plugins.test/helloworld2/common/languages/Base.tab
   trunk/gforge_base/evolvisforge/plugins.test/helloworld2/db/
   trunk/gforge_base/evolvisforge/plugins.test/helloworld2/db/helloworld-init.sql
   trunk/gforge_base/evolvisforge/plugins.test/helloworld2/etc/
   trunk/gforge_base/evolvisforge/plugins.test/helloworld2/etc/plugins/
   trunk/gforge_base/evolvisforge/plugins.test/helloworld2/etc/plugins/helloworld/
   trunk/gforge_base/evolvisforge/plugins.test/helloworld2/etc/plugins/helloworld/config.php
   trunk/gforge_base/evolvisforge/plugins.test/helloworld2/httpd.conf
   trunk/gforge_base/evolvisforge/plugins.test/helloworld2/www/
   trunk/gforge_base/evolvisforge/plugins.test/helloworld2/www/index.php
   trunk/gforge_base/evolvisforge/plugins.test/ldapextauth/
   trunk/gforge_base/evolvisforge/plugins.test/ldapextauth/README
   trunk/gforge_base/evolvisforge/plugins.test/ldapextauth/bin/
   trunk/gforge_base/evolvisforge/plugins.test/ldapextauth/bin/db-delete.pl
   trunk/gforge_base/evolvisforge/plugins.test/ldapextauth/bin/db-upgrade.pl
   trunk/gforge_base/evolvisforge/plugins.test/ldapextauth/db/
   trunk/gforge_base/evolvisforge/plugins.test/ldapextauth/db/install_ldapextauth.sql
   trunk/gforge_base/evolvisforge/plugins.test/ldapextauth/debian/
   trunk/gforge_base/evolvisforge/plugins.test/ldapextauth/debian/README.Debian
   trunk/gforge_base/evolvisforge/plugins.test/ldapextauth/debian/changelog
   trunk/gforge_base/evolvisforge/plugins.test/ldapextauth/debian/control
   trunk/gforge_base/evolvisforge/plugins.test/ldapextauth/debian/copyright
   trunk/gforge_base/evolvisforge/plugins.test/ldapextauth/debian/dirs
   trunk/gforge_base/evolvisforge/plugins.test/ldapextauth/debian/postinst
   trunk/gforge_base/evolvisforge/plugins.test/ldapextauth/debian/prerm
   trunk/gforge_base/evolvisforge/plugins.test/ldapextauth/debian/rules
   trunk/gforge_base/evolvisforge/plugins.test/ldapextauth/etc/
   trunk/gforge_base/evolvisforge/plugins.test/ldapextauth/etc/plugins/
   trunk/gforge_base/evolvisforge/plugins.test/ldapextauth/etc/plugins/ldapextauth/
   trunk/gforge_base/evolvisforge/plugins.test/ldapextauth/etc/plugins/ldapextauth/config.php
   trunk/gforge_base/evolvisforge/plugins.test/ldapextauth/etc/plugins/ldapextauth/mapping.php
   trunk/gforge_base/evolvisforge/plugins.test/ldapextauth/gforge-plugin-ldapextauth.spec
   trunk/gforge_base/evolvisforge/plugins.test/ldapextauth/include/
   trunk/gforge_base/evolvisforge/plugins.test/ldapextauth/include/LdapExtAuthPlugin.class
   trunk/gforge_base/evolvisforge/plugins.test/ldapextauth/include/ldapextauth-init.php
   trunk/gforge_base/evolvisforge/plugins.test/ldapextauth/login.diff
   trunk/gforge_base/evolvisforge/plugins.test/ldapextauth/rpm-specific/
   trunk/gforge_base/evolvisforge/plugins.test/ldapextauth/rpm-specific/.keepme
   trunk/gforge_base/evolvisforge/plugins.test/ldapextauth/session.diff
   trunk/gforge_base/evolvisforge/plugins.test/scmccase/
   trunk/gforge_base/evolvisforge/plugins.test/scmccase/README
   trunk/gforge_base/evolvisforge/plugins.test/scmccase/bin/
   trunk/gforge_base/evolvisforge/plugins.test/scmccase/bin/ccase_dump_update.pl
   trunk/gforge_base/evolvisforge/plugins.test/scmccase/bin/db-delete.pl
   trunk/gforge_base/evolvisforge/plugins.test/scmccase/bin/db-upgrade.pl
   trunk/gforge_base/evolvisforge/plugins.test/scmccase/bin/install-ccase.sh
   trunk/gforge_base/evolvisforge/plugins.test/scmccase/common/
   trunk/gforge_base/evolvisforge/plugins.test/scmccase/common/CCasePlugin.class
   trunk/gforge_base/evolvisforge/plugins.test/scmccase/common/scmccase-init.php
   trunk/gforge_base/evolvisforge/plugins.test/scmccase/db/
   trunk/gforge_base/evolvisforge/plugins.test/scmccase/db/scmccase-init.sql
   trunk/gforge_base/evolvisforge/plugins.test/scmccase/debian/
   trunk/gforge_base/evolvisforge/plugins.test/scmccase/debian/README.Debian
   trunk/gforge_base/evolvisforge/plugins.test/scmccase/debian/changelog
   trunk/gforge_base/evolvisforge/plugins.test/scmccase/debian/control
   trunk/gforge_base/evolvisforge/plugins.test/scmccase/debian/copyright
   trunk/gforge_base/evolvisforge/plugins.test/scmccase/debian/cron.d
   trunk/gforge_base/evolvisforge/plugins.test/scmccase/debian/dirs
   trunk/gforge_base/evolvisforge/plugins.test/scmccase/debian/postinst
   trunk/gforge_base/evolvisforge/plugins.test/scmccase/debian/postrm.ex
   trunk/gforge_base/evolvisforge/plugins.test/scmccase/debian/preinst.ex
   trunk/gforge_base/evolvisforge/plugins.test/scmccase/debian/prerm
   trunk/gforge_base/evolvisforge/plugins.test/scmccase/debian/rules
   trunk/gforge_base/evolvisforge/plugins.test/scmccase/etc/
   trunk/gforge_base/evolvisforge/plugins.test/scmccase/etc/config.php
   trunk/gforge_base/evolvisforge/plugins.test/scmccase/etc/config.pl
   trunk/gforge_base/evolvisforge/plugins.test/scmcvs/
   trunk/gforge_base/evolvisforge/plugins.test/scmcvs/AUTHORS
   trunk/gforge_base/evolvisforge/plugins.test/scmcvs/COPYING
   trunk/gforge_base/evolvisforge/plugins.test/scmcvs/README
   trunk/gforge_base/evolvisforge/plugins.test/scmcvs/TODO
   trunk/gforge_base/evolvisforge/plugins.test/scmcvs/bin/
   trunk/gforge_base/evolvisforge/plugins.test/scmcvs/bin/README
   trunk/gforge_base/evolvisforge/plugins.test/scmcvs/bin/aclcheck.php
   trunk/gforge_base/evolvisforge/plugins.test/scmcvs/bin/cvs-pserver
   trunk/gforge_base/evolvisforge/plugins.test/scmcvs/bin/cvs_dump.pl
   trunk/gforge_base/evolvisforge/plugins.test/scmcvs/bin/cvs_update.pl
   trunk/gforge_base/evolvisforge/plugins.test/scmcvs/bin/db-delete.pl
   trunk/gforge_base/evolvisforge/plugins.test/scmcvs/bin/db-upgrade.pl
   trunk/gforge_base/evolvisforge/plugins.test/scmcvs/bin/install-cvs.sh
   trunk/gforge_base/evolvisforge/plugins.test/scmcvs/bin/snapshots.sh
   trunk/gforge_base/evolvisforge/plugins.test/scmcvs/bin/stats_cvs.pl
   trunk/gforge_base/evolvisforge/plugins.test/scmcvs/bin/syncmail
   trunk/gforge_base/evolvisforge/plugins.test/scmcvs/bin/syncmail-cvs-1.11
   trunk/gforge_base/evolvisforge/plugins.test/scmcvs/bin/syncmail-cvs-1.12
   trunk/gforge_base/evolvisforge/plugins.test/scmcvs/cgi-bin/
   trunk/gforge_base/evolvisforge/plugins.test/scmcvs/cgi-bin/cvsweb
   trunk/gforge_base/evolvisforge/plugins.test/scmcvs/cgi-bin/cvsweb.ori
   trunk/gforge_base/evolvisforge/plugins.test/scmcvs/common/
   trunk/gforge_base/evolvisforge/plugins.test/scmcvs/common/CVSPlugin.class
   trunk/gforge_base/evolvisforge/plugins.test/scmcvs/common/Snoopy.class
   trunk/gforge_base/evolvisforge/plugins.test/scmcvs/common/languages/
   trunk/gforge_base/evolvisforge/plugins.test/scmcvs/common/languages/Base.tab
   trunk/gforge_base/evolvisforge/plugins.test/scmcvs/common/languages/Basque.tab
   trunk/gforge_base/evolvisforge/plugins.test/scmcvs/common/languages/Chinese.tab
   trunk/gforge_base/evolvisforge/plugins.test/scmcvs/common/languages/Dutch.tab
   trunk/gforge_base/evolvisforge/plugins.test/scmcvs/common/languages/French.tab
   trunk/gforge_base/evolvisforge/plugins.test/scmcvs/common/languages/German.tab
   trunk/gforge_base/evolvisforge/plugins.test/scmcvs/common/languages/Italian.tab
   trunk/gforge_base/evolvisforge/plugins.test/scmcvs/common/languages/Korean.tab
   trunk/gforge_base/evolvisforge/plugins.test/scmcvs/common/languages/PortugueseBrazilian.tab
   trunk/gforge_base/evolvisforge/plugins.test/scmcvs/common/languages/Spanish.tab
   trunk/gforge_base/evolvisforge/plugins.test/scmcvs/common/languages/Swedish.tab
   trunk/gforge_base/evolvisforge/plugins.test/scmcvs/common/scmcvs-init.php
   trunk/gforge_base/evolvisforge/plugins.test/scmcvs/cronjobs/
   trunk/gforge_base/evolvisforge/plugins.test/scmcvs/cronjobs/crontab.in
   trunk/gforge_base/evolvisforge/plugins.test/scmcvs/cronjobs/cvs.php
   trunk/gforge_base/evolvisforge/plugins.test/scmcvs/cronjobs/cvscreate.sh
   trunk/gforge_base/evolvisforge/plugins.test/scmcvs/cronjobs/cvssh.pl
   trunk/gforge_base/evolvisforge/plugins.test/scmcvs/cronjobs/default_page.php
   trunk/gforge_base/evolvisforge/plugins.test/scmcvs/cronjobs/ftp_create.php
   trunk/gforge_base/evolvisforge/plugins.test/scmcvs/cronjobs/grap.c
   trunk/gforge_base/evolvisforge/plugins.test/scmcvs/cronjobs/history_parse.php
   trunk/gforge_base/evolvisforge/plugins.test/scmcvs/cronjobs/homedirs.php
   trunk/gforge_base/evolvisforge/plugins.test/scmcvs/cronjobs/ssh_create.php
   trunk/gforge_base/evolvisforge/plugins.test/scmcvs/cronjobs/syncmail
   trunk/gforge_base/evolvisforge/plugins.test/scmcvs/cronjobs/tarballs.php
   trunk/gforge_base/evolvisforge/plugins.test/scmcvs/cronjobs/usergroup.php
   trunk/gforge_base/evolvisforge/plugins.test/scmcvs/cronjobs/www/
   trunk/gforge_base/evolvisforge/plugins.test/scmcvs/cronjobs/www/index.php
   trunk/gforge_base/evolvisforge/plugins.test/scmcvs/db/
   trunk/gforge_base/evolvisforge/plugins.test/scmcvs/db/scmcvs-init.sql
   trunk/gforge_base/evolvisforge/plugins.test/scmcvs/debian/
   trunk/gforge_base/evolvisforge/plugins.test/scmcvs/debian/README.Debian
   trunk/gforge_base/evolvisforge/plugins.test/scmcvs/debian/changelog
   trunk/gforge_base/evolvisforge/plugins.test/scmcvs/debian/control
   trunk/gforge_base/evolvisforge/plugins.test/scmcvs/debian/copyright
   trunk/gforge_base/evolvisforge/plugins.test/scmcvs/debian/cron.d
   trunk/gforge_base/evolvisforge/plugins.test/scmcvs/debian/dirs
   trunk/gforge_base/evolvisforge/plugins.test/scmcvs/debian/patches/
   trunk/gforge_base/evolvisforge/plugins.test/scmcvs/debian/patches/00list
   trunk/gforge_base/evolvisforge/plugins.test/scmcvs/debian/patches/01_fix_cvsroot_lockdir.dpatch
   trunk/gforge_base/evolvisforge/plugins.test/scmcvs/debian/postinst
   trunk/gforge_base/evolvisforge/plugins.test/scmcvs/debian/prerm
   trunk/gforge_base/evolvisforge/plugins.test/scmcvs/debian/rules
   trunk/gforge_base/evolvisforge/plugins.test/scmcvs/etc/
   trunk/gforge_base/evolvisforge/plugins.test/scmcvs/etc/httpd.d/
   trunk/gforge_base/evolvisforge/plugins.test/scmcvs/etc/httpd.d/11scm50cvs
   trunk/gforge_base/evolvisforge/plugins.test/scmcvs/etc/httpd.d/12scm50cvs.ssl
   trunk/gforge_base/evolvisforge/plugins.test/scmcvs/etc/httpd.d/30virtualcvs
   trunk/gforge_base/evolvisforge/plugins.test/scmcvs/etc/httpd.d/31virtualcvs.ssl
   trunk/gforge_base/evolvisforge/plugins.test/scmcvs/etc/plugins/
   trunk/gforge_base/evolvisforge/plugins.test/scmcvs/etc/plugins/scmcvs/
   trunk/gforge_base/evolvisforge/plugins.test/scmcvs/etc/plugins/scmcvs/config.php
   trunk/gforge_base/evolvisforge/plugins.test/scmcvs/etc/plugins/scmcvs/config.pl
   trunk/gforge_base/evolvisforge/plugins.test/scmcvs/etc/plugins/scmcvs/cvsweb.conf
   trunk/gforge_base/evolvisforge/plugins.test/scmcvs/gforge-plugin-scmcvs.spec
   trunk/gforge_base/evolvisforge/plugins.test/scmcvs/rpm-specific/
   trunk/gforge_base/evolvisforge/plugins.test/scmcvs/rpm-specific/cron.d/
   trunk/gforge_base/evolvisforge/plugins.test/scmcvs/rpm-specific/cron.d/gforge-plugin-scmcvs
   trunk/gforge_base/evolvisforge/plugins.test/scmcvs/rpm-specific/cronjobs/
   trunk/gforge_base/evolvisforge/plugins.test/scmcvs/rpm-specific/cronjobs/.keepme
   trunk/gforge_base/evolvisforge/plugins.test/scmcvs/rpm-specific/languages/
   trunk/gforge_base/evolvisforge/plugins.test/scmcvs/rpm-specific/languages/.keepme
   trunk/gforge_base/evolvisforge/plugins.test/scmcvs/www/
   trunk/gforge_base/evolvisforge/plugins.test/scmcvs/www/acl.php
   trunk/gforge_base/evolvisforge/plugins.test/scmsvn/
   trunk/gforge_base/evolvisforge/plugins.test/scmsvn/README
   trunk/gforge_base/evolvisforge/plugins.test/scmsvn/bin/
   trunk/gforge_base/evolvisforge/plugins.test/scmsvn/bin/db-delete.pl
   trunk/gforge_base/evolvisforge/plugins.test/scmsvn/bin/db-upgrade.pl
   trunk/gforge_base/evolvisforge/plugins.test/scmsvn/bin/install-svn.sh
   trunk/gforge_base/evolvisforge/plugins.test/scmsvn/bin/install-viewcvs.sh
   trunk/gforge_base/evolvisforge/plugins.test/scmsvn/bin/snapshots.sh
   trunk/gforge_base/evolvisforge/plugins.test/scmsvn/bin/svn-create.php
   trunk/gforge_base/evolvisforge/plugins.test/scmsvn/bin/svn_dump.pl
   trunk/gforge_base/evolvisforge/plugins.test/scmsvn/bin/svn_update.pl
   trunk/gforge_base/evolvisforge/plugins.test/scmsvn/cgi-bin/
   trunk/gforge_base/evolvisforge/plugins.test/scmsvn/cgi-bin/viewcvs.cgi
   trunk/gforge_base/evolvisforge/plugins.test/scmsvn/common/
   trunk/gforge_base/evolvisforge/plugins.test/scmsvn/common/SVNPlugin.class
   trunk/gforge_base/evolvisforge/plugins.test/scmsvn/common/languages/
   trunk/gforge_base/evolvisforge/plugins.test/scmsvn/common/languages/Base.tab
   trunk/gforge_base/evolvisforge/plugins.test/scmsvn/common/languages/French.tab
   trunk/gforge_base/evolvisforge/plugins.test/scmsvn/common/languages/Italian.tab
   trunk/gforge_base/evolvisforge/plugins.test/scmsvn/common/languages/Korean.tab
   trunk/gforge_base/evolvisforge/plugins.test/scmsvn/common/scmsvn-init.php
   trunk/gforge_base/evolvisforge/plugins.test/scmsvn/cronjobs/
   trunk/gforge_base/evolvisforge/plugins.test/scmsvn/cronjobs/README
   trunk/gforge_base/evolvisforge/plugins.test/scmsvn/cronjobs/commit-email_pl
   trunk/gforge_base/evolvisforge/plugins.test/scmsvn/cronjobs/create_docman.php
   trunk/gforge_base/evolvisforge/plugins.test/scmsvn/cronjobs/create_group_home.php
   trunk/gforge_base/evolvisforge/plugins.test/scmsvn/cronjobs/create_groups.php
   trunk/gforge_base/evolvisforge/plugins.test/scmsvn/cronjobs/create_svn.php
   trunk/gforge_base/evolvisforge/plugins.test/scmsvn/cronjobs/create_users.php
   trunk/gforge_base/evolvisforge/plugins.test/scmsvn/cronjobs/crontab.in
   trunk/gforge_base/evolvisforge/plugins.test/scmsvn/cronjobs/default_page.php
   trunk/gforge_base/evolvisforge/plugins.test/scmsvn/cronjobs/svn-index.php
   trunk/gforge_base/evolvisforge/plugins.test/scmsvn/cronjobs/svn-stats.php
   trunk/gforge_base/evolvisforge/plugins.test/scmsvn/cronjobs/tarballs.php
   trunk/gforge_base/evolvisforge/plugins.test/scmsvn/cronjobs/www/
   trunk/gforge_base/evolvisforge/plugins.test/scmsvn/cronjobs/www/index.php
   trunk/gforge_base/evolvisforge/plugins.test/scmsvn/cronjobs/www/svnindex.css
   trunk/gforge_base/evolvisforge/plugins.test/scmsvn/cronjobs/www/svnindex.xsl
   trunk/gforge_base/evolvisforge/plugins.test/scmsvn/db/
   trunk/gforge_base/evolvisforge/plugins.test/scmsvn/db/scmsvn-init.sql
   trunk/gforge_base/evolvisforge/plugins.test/scmsvn/debian/
   trunk/gforge_base/evolvisforge/plugins.test/scmsvn/debian/README.Debian
   trunk/gforge_base/evolvisforge/plugins.test/scmsvn/debian/changelog
   trunk/gforge_base/evolvisforge/plugins.test/scmsvn/debian/control
   trunk/gforge_base/evolvisforge/plugins.test/scmsvn/debian/copyright
   trunk/gforge_base/evolvisforge/plugins.test/scmsvn/debian/cron.d
   trunk/gforge_base/evolvisforge/plugins.test/scmsvn/debian/dirs
   trunk/gforge_base/evolvisforge/plugins.test/scmsvn/debian/patches/
   trunk/gforge_base/evolvisforge/plugins.test/scmsvn/debian/patches/00list
   trunk/gforge_base/evolvisforge/plugins.test/scmsvn/debian/patches/disable-dav.dpatch
   trunk/gforge_base/evolvisforge/plugins.test/scmsvn/debian/postinst
   trunk/gforge_base/evolvisforge/plugins.test/scmsvn/debian/prerm
   trunk/gforge_base/evolvisforge/plugins.test/scmsvn/debian/rules
   trunk/gforge_base/evolvisforge/plugins.test/scmsvn/etc/
   trunk/gforge_base/evolvisforge/plugins.test/scmsvn/etc/httpd.d/
   trunk/gforge_base/evolvisforge/plugins.test/scmsvn/etc/httpd.d/11scm60svn
   trunk/gforge_base/evolvisforge/plugins.test/scmsvn/etc/httpd.d/12scm60svn.ssl
   trunk/gforge_base/evolvisforge/plugins.test/scmsvn/etc/plugins/
   trunk/gforge_base/evolvisforge/plugins.test/scmsvn/etc/plugins/scmsvn/
   trunk/gforge_base/evolvisforge/plugins.test/scmsvn/etc/plugins/scmsvn/config.php
   trunk/gforge_base/evolvisforge/plugins.test/scmsvn/etc/plugins/scmsvn/config.pl
   trunk/gforge_base/evolvisforge/plugins.test/scmsvn/etc/plugins/scmsvn/viewcvs/
   trunk/gforge_base/evolvisforge/plugins.test/scmsvn/etc/plugins/scmsvn/viewcvs/templates/
   trunk/gforge_base/evolvisforge/plugins.test/scmsvn/etc/plugins/scmsvn/viewcvs/templates/annotate.ezt
   trunk/gforge_base/evolvisforge/plugins.test/scmsvn/etc/plugins/scmsvn/viewcvs/templates/diff.ezt
   trunk/gforge_base/evolvisforge/plugins.test/scmsvn/etc/plugins/scmsvn/viewcvs/templates/dir_alternate.ezt
   trunk/gforge_base/evolvisforge/plugins.test/scmsvn/etc/plugins/scmsvn/viewcvs/templates/directory.ezt
   trunk/gforge_base/evolvisforge/plugins.test/scmsvn/etc/plugins/scmsvn/viewcvs/templates/error.ezt
   trunk/gforge_base/evolvisforge/plugins.test/scmsvn/etc/plugins/scmsvn/viewcvs/templates/graph.ezt
   trunk/gforge_base/evolvisforge/plugins.test/scmsvn/etc/plugins/scmsvn/viewcvs/templates/include/
   trunk/gforge_base/evolvisforge/plugins.test/scmsvn/etc/plugins/scmsvn/viewcvs/templates/include/branch.ezt
   trunk/gforge_base/evolvisforge/plugins.test/scmsvn/etc/plugins/scmsvn/viewcvs/templates/include/branch_form.ezt
   trunk/gforge_base/evolvisforge/plugins.test/scmsvn/etc/plugins/scmsvn/viewcvs/templates/include/diff_form.ezt
   trunk/gforge_base/evolvisforge/plugins.test/scmsvn/etc/plugins/scmsvn/viewcvs/templates/include/dir_footer.ezt
   trunk/gforge_base/evolvisforge/plugins.test/scmsvn/etc/plugins/scmsvn/viewcvs/templates/include/dir_header.ezt
   trunk/gforge_base/evolvisforge/plugins.test/scmsvn/etc/plugins/scmsvn/viewcvs/templates/include/footer.ezt
   trunk/gforge_base/evolvisforge/plugins.test/scmsvn/etc/plugins/scmsvn/viewcvs/templates/include/header.ezt
   trunk/gforge_base/evolvisforge/plugins.test/scmsvn/etc/plugins/scmsvn/viewcvs/templates/include/paging.ezt
   trunk/gforge_base/evolvisforge/plugins.test/scmsvn/etc/plugins/scmsvn/viewcvs/templates/include/sort.ezt
   trunk/gforge_base/evolvisforge/plugins.test/scmsvn/etc/plugins/scmsvn/viewcvs/templates/include/view_tag.ezt
   trunk/gforge_base/evolvisforge/plugins.test/scmsvn/etc/plugins/scmsvn/viewcvs/templates/log.ezt
   trunk/gforge_base/evolvisforge/plugins.test/scmsvn/etc/plugins/scmsvn/viewcvs/templates/log_table.ezt
   trunk/gforge_base/evolvisforge/plugins.test/scmsvn/etc/plugins/scmsvn/viewcvs/templates/markup.ezt
   trunk/gforge_base/evolvisforge/plugins.test/scmsvn/etc/plugins/scmsvn/viewcvs/templates/query.ezt
   trunk/gforge_base/evolvisforge/plugins.test/scmsvn/etc/plugins/scmsvn/viewcvs/templates/query_form.ezt
   trunk/gforge_base/evolvisforge/plugins.test/scmsvn/etc/plugins/scmsvn/viewcvs/templates/query_results.ezt
   trunk/gforge_base/evolvisforge/plugins.test/scmsvn/etc/plugins/scmsvn/viewcvs/templates/revision.ezt
   trunk/gforge_base/evolvisforge/plugins.test/scmsvn/www/
   trunk/gforge_base/evolvisforge/plugins.test/scmsvn/www/viewcvs/
   trunk/gforge_base/evolvisforge/plugins.test/scmsvn/www/viewcvs/contributing.html
   trunk/gforge_base/evolvisforge/plugins.test/scmsvn/www/viewcvs/help_dirview.html
   trunk/gforge_base/evolvisforge/plugins.test/scmsvn/www/viewcvs/help_log.html
   trunk/gforge_base/evolvisforge/plugins.test/scmsvn/www/viewcvs/help_logtable.html
   trunk/gforge_base/evolvisforge/plugins.test/scmsvn/www/viewcvs/help_query.html
   trunk/gforge_base/evolvisforge/plugins.test/scmsvn/www/viewcvs/help_rootview.html
   trunk/gforge_base/evolvisforge/plugins.test/scmsvn/www/viewcvs/icons/
   trunk/gforge_base/evolvisforge/plugins.test/scmsvn/www/viewcvs/icons/back.gif
   trunk/gforge_base/evolvisforge/plugins.test/scmsvn/www/viewcvs/icons/forward.gif
   trunk/gforge_base/evolvisforge/plugins.test/scmsvn/www/viewcvs/icons/small/
   trunk/gforge_base/evolvisforge/plugins.test/scmsvn/www/viewcvs/icons/small/back.gif
   trunk/gforge_base/evolvisforge/plugins.test/scmsvn/www/viewcvs/icons/small/debian.jpg
   trunk/gforge_base/evolvisforge/plugins.test/scmsvn/www/viewcvs/icons/small/dir.gif
   trunk/gforge_base/evolvisforge/plugins.test/scmsvn/www/viewcvs/icons/small/text.gif
   trunk/gforge_base/evolvisforge/plugins.test/scmsvn/www/viewcvs/images/
   trunk/gforge_base/evolvisforge/plugins.test/scmsvn/www/viewcvs/images/chalk.jpg
   trunk/gforge_base/evolvisforge/plugins.test/scmsvn/www/viewcvs/images/cvsgraph_16x16.png
   trunk/gforge_base/evolvisforge/plugins.test/scmsvn/www/viewcvs/images/cvsgraph_32x32.png
   trunk/gforge_base/evolvisforge/plugins.test/scmsvn/www/viewcvs/images/down.png
   trunk/gforge_base/evolvisforge/plugins.test/scmsvn/www/viewcvs/images/logo.png
   trunk/gforge_base/evolvisforge/plugins.test/scmsvn/www/viewcvs/images/up.png
   trunk/gforge_base/evolvisforge/plugins.test/scmsvn/www/viewcvs/index.html
   trunk/gforge_base/evolvisforge/plugins.test/scmsvn/www/viewcvs/license-1.html
   trunk/gforge_base/evolvisforge/plugins.test/scmsvn/www/viewcvs/styles.css
   trunk/gforge_base/evolvisforge/plugins.test/scmsvn/www/viewcvs/upgrading.html
   trunk/gforge_base/evolvisforge/plugins.test/scmsvn/www/viewcvs/who.html
   trunk/gforge_base/evolvisforge/plugins.test/svncommitemail/
   trunk/gforge_base/evolvisforge/plugins.test/svncommitemail/bin/
   trunk/gforge_base/evolvisforge/plugins.test/svncommitemail/bin/commit-email.pl
   trunk/gforge_base/evolvisforge/plugins.test/svncommitemail/common/
   trunk/gforge_base/evolvisforge/plugins.test/svncommitemail/common/SVNCommitEmailPlugin.class
   trunk/gforge_base/evolvisforge/plugins.test/svncommitemail/common/svncommitemail-init.php
   trunk/gforge_base/evolvisforge/plugins.test/svncommitemail/include/
   trunk/gforge_base/evolvisforge/plugins.test/svncommitemail/include/SVNCommitEmailPlugin.class
   trunk/gforge_base/evolvisforge/plugins.test/svncommitemail/include/svncommitemail-init.php
Removed:
   trunk/gforge_base/evolvisforge/gforge-plugin-helloworld2/
   trunk/gforge_base/evolvisforge/gforge-plugin-ldapextauth/
   trunk/gforge_base/evolvisforge/gforge-plugin-scmccase/
   trunk/gforge_base/evolvisforge/gforge-plugin-scmcvs/
   trunk/gforge_base/evolvisforge/gforge-plugin-scmsvn/
   trunk/gforge_base/evolvisforge/gforge-plugin-svncommitemail/
Modified:
   trunk/gforge_base/evolvisforge/
Log:
Move plugins from root dir to plugins.test dir



Property changes on: trunk/gforge_base/evolvisforge
___________________________________________________________________
Modified: bzr:revision-info
   - timestamp: 2006-09-22 21:00:26.766999960 +0000
committer: cbayle

   + timestamp: 2006-09-22 21:04:02.655999899 +0000
committer: cbayle

Modified: bzr:file-ids
   - plugins.test/cvssyncmail	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fcvssyncmail
plugins.test/cvssyncmail/INSTALL	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fcvssyncmail%2FINSTALL
plugins.test/cvssyncmail/bin	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fcvssyncmail%2Fbin
plugins.test/cvssyncmail/bin/syncmail	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fcvssyncmail%2Fbin%2Fsyncmail
plugins.test/cvssyncmail/bin/syncmail-cvs-1.11	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fcvssyncmail%2Fbin%2Fsyncmail-cvs-1.11
plugins.test/cvssyncmail/bin/syncmail-cvs-1.12	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fcvssyncmail%2Fbin%2Fsyncmail-cvs-1.12
plugins.test/cvssyncmail/common	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fcvssyncmail%2Fcommon
plugins.test/cvssyncmail/common/CVSSyncMailPlugin.class	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fcvssyncmail%2Fcommon%2FCVSSyncMailPlugin.class
plugins.test/cvssyncmail/common/cvssyncmail-init.php	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fcvssyncmail%2Fcommon%2Fcvssyncmail-init.php
plugins.test/cvssyncmail/common/languages	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fcvssyncmail%2Fcommon%2Flanguages
plugins.test/cvssyncmail/common/languages/Base.tab	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fcvssyncmail%2Fcommon%2Flanguages%2FBase.tab
plugins.test/cvssyncmail/db	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fcvssyncmail%2Fdb
plugins.test/cvssyncmail/db/cvssyncmail-init.sql	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fcvssyncmail%2Fdb%2Fcvssyncmail-init.sql
plugins.test/cvssyncmail/include	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fcvssyncmail%2Finclude
plugins.test/cvssyncmail/include/cvssyncmail-init.php	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fcvssyncmail%2Finclude%2Fcvssyncmail-init.php
plugins.test/cvstracker	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fcvstracker
plugins.test/cvstracker/AUTHORS	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fcvstracker%2FAUTHORS
plugins.test/cvstracker/COPYING	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fcvstracker%2FCOPYING
plugins.test/cvstracker/Makefile	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fcvstracker%2FMakefile
plugins.test/cvstracker/README	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fcvstracker%2FREADME
plugins.test/cvstracker/bin	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fcvstracker%2Fbin
plugins.test/cvstracker/bin/db-delete.pl	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fcvstracker%2Fbin%2Fdb-delete.pl
plugins.test/cvstracker/bin/db-upgrade.pl	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fcvstracker%2Fbin%2Fdb-upgrade.pl
plugins.test/cvstracker/bin/post.php	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fcvstracker%2Fbin%2Fpost.php
plugins.test/cvstracker/bin/update_loginfo.php	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fcvstracker%2Fbin%2Fupdate_loginfo.php
plugins.test/cvstracker/common	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fcvstracker%2Fcommon
plugins.test/cvstracker/common/Snoopy.class	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fcvstracker%2Fcommon%2FSnoopy.class
plugins.test/cvstracker/common/cvstracker-init.php	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fcvstracker%2Fcommon%2Fcvstracker-init.php
plugins.test/cvstracker/common/cvstrackerPlugin.class	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fcvstracker%2Fcommon%2FcvstrackerPlugin.class
plugins.test/cvstracker/common/languages	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fcvstracker%2Fcommon%2Flanguages
plugins.test/cvstracker/common/languages/Base.tab	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fcvstracker%2Fcommon%2Flanguages%2FBase.tab
plugins.test/cvstracker/common/languages/French.tab	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fcvstracker%2Fcommon%2Flanguages%2FFrench.tab
plugins.test/cvstracker/common/languages/Spanish.tab	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fcvstracker%2Fcommon%2Flanguages%2FSpanish.tab
plugins.test/cvstracker/db	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fcvstracker%2Fdb
plugins.test/cvstracker/db/20050305.sql	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fcvstracker%2Fdb%2F20050305.sql
plugins.test/cvstracker/db/cvstracker-init.sql	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fcvstracker%2Fdb%2Fcvstracker-init.sql
plugins.test/cvstracker/debian	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fcvstracker%2Fdebian
plugins.test/cvstracker/debian/README.Debian	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fcvstracker%2Fdebian%2FREADME.Debian
plugins.test/cvstracker/debian/changelog	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fcvstracker%2Fdebian%2Fchangelog
plugins.test/cvstracker/debian/control	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fcvstracker%2Fdebian%2Fcontrol
plugins.test/cvstracker/debian/copyright	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fcvstracker%2Fdebian%2Fcopyright
plugins.test/cvstracker/debian/cron.d	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fcvstracker%2Fdebian%2Fcron.d
plugins.test/cvstracker/debian/dirs	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fcvstracker%2Fdebian%2Fdirs
plugins.test/cvstracker/debian/postinst	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fcvstracker%2Fdebian%2Fpostinst
plugins.test/cvstracker/debian/prerm	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fcvstracker%2Fdebian%2Fprerm
plugins.test/cvstracker/debian/rules	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fcvstracker%2Fdebian%2Frules
plugins.test/cvstracker/etc	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fcvstracker%2Fetc
plugins.test/cvstracker/etc/plugins	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fcvstracker%2Fetc%2Fplugins
plugins.test/cvstracker/etc/plugins/cvstracker	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fcvstracker%2Fetc%2Fplugins%2Fcvstracker
plugins.test/cvstracker/etc/plugins/cvstracker/config.php	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fcvstracker%2Fetc%2Fplugins%2Fcvstracker%2Fconfig.php
plugins.test/cvstracker/gforge-plugin-cvstracker.spec	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fcvstracker%2Fgforge-plugin-cvstracker.spec
plugins.test/cvstracker/httpd.conf	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fcvstracker%2Fhttpd.conf
plugins.test/cvstracker/rpm-specific	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fcvstracker%2Frpm-specific
plugins.test/cvstracker/rpm-specific/cron.d	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fcvstracker%2Frpm-specific%2Fcron.d
plugins.test/cvstracker/rpm-specific/cron.d/gforge-plugin-cvstracker	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fcvstracker%2Frpm-specific%2Fcron.d%2Fgforge-plugin-cvstracker
plugins.test/cvstracker/www	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fcvstracker%2Fwww
plugins.test/cvstracker/www/newcommit.php	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fcvstracker%2Fwww%2Fnewcommit.php
plugins.test/eirc	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Feirc
plugins.test/eirc/EIRC-1.0.2.tar.gz	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Feirc%2FEIRC-1.0.2.tar.gz
plugins.test/eirc/README.Eirc	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Feirc%2FREADME.Eirc
plugins.test/eirc/bin	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Feirc%2Fbin
plugins.test/eirc/bin/db-delete.pl	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Feirc%2Fbin%2Fdb-delete.pl
plugins.test/eirc/bin/db-upgrade.pl	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Feirc%2Fbin%2Fdb-upgrade.pl
plugins.test/eirc/bin/sayhello	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Feirc%2Fbin%2Fsayhello
plugins.test/eirc/debian	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Feirc%2Fdebian
plugins.test/eirc/debian/README.Debian	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Feirc%2Fdebian%2FREADME.Debian
plugins.test/eirc/debian/changelog	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Feirc%2Fdebian%2Fchangelog
plugins.test/eirc/debian/control	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Feirc%2Fdebian%2Fcontrol
plugins.test/eirc/debian/copyright	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Feirc%2Fdebian%2Fcopyright
plugins.test/eirc/debian/cron.d	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Feirc%2Fdebian%2Fcron.d
plugins.test/eirc/debian/dirs	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Feirc%2Fdebian%2Fdirs
plugins.test/eirc/debian/docs	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Feirc%2Fdebian%2Fdocs
plugins.test/eirc/debian/postinst	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Feirc%2Fdebian%2Fpostinst
plugins.test/eirc/debian/prerm	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Feirc%2Fdebian%2Fprerm
plugins.test/eirc/debian/rules	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Feirc%2Fdebian%2Frules
plugins.test/eirc/etc	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Feirc%2Fetc
plugins.test/eirc/etc/eirc.conf	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Feirc%2Fetc%2Feirc.conf
plugins.test/eirc/httpd.conf	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Feirc%2Fhttpd.conf
plugins.test/eirc/include	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Feirc%2Finclude
plugins.test/eirc/include/EIRCPlugin.class	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Feirc%2Finclude%2FEIRCPlugin.class
plugins.test/eirc/include/eirc-init.php	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Feirc%2Finclude%2Feirc-init.php
plugins.test/eirc/lib	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Feirc%2Flib
plugins.test/eirc/lib/eirc-init.sql	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Feirc%2Flib%2Feirc-init.sql
plugins.test/eirc/www	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Feirc%2Fwww
plugins.test/eirc/www/eirc.php	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Feirc%2Fwww%2Feirc.php
plugins.test/externalsearch	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fexternalsearch
plugins.test/externalsearch/AUTHORS	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fexternalsearch%2FAUTHORS
plugins.test/externalsearch/COPYING	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fexternalsearch%2FCOPYING
plugins.test/externalsearch/README	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fexternalsearch%2FREADME
plugins.test/externalsearch/bin	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fexternalsearch%2Fbin
plugins.test/externalsearch/bin/db-delete.pl	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fexternalsearch%2Fbin%2Fdb-delete.pl
plugins.test/externalsearch/bin/db-upgrade.pl	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fexternalsearch%2Fbin%2Fdb-upgrade.pl
plugins.test/externalsearch/etc	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fexternalsearch%2Fetc
plugins.test/externalsearch/etc/plugins	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fexternalsearch%2Fetc%2Fplugins
plugins.test/externalsearch/etc/plugins/externalsearch	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fexternalsearch%2Fetc%2Fplugins%2Fexternalsearch
plugins.test/externalsearch/etc/plugins/externalsearch/config.php	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fexternalsearch%2Fetc%2Fplugins%2Fexternalsearch%2Fconfig.php
plugins.test/externalsearch/gforge-plugin-externalsearch.spec	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fexternalsearch%2Fgforge-plugin-externalsearch.spec
plugins.test/externalsearch/include	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fexternalsearch%2Finclude
plugins.test/externalsearch/include/ExternalHtmlSearchRenderer.class	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fexternalsearch%2Finclude%2FExternalHtmlSearchRenderer.class
plugins.test/externalsearch/include/ExternalSearchEngine.class	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fexternalsearch%2Finclude%2FExternalSearchEngine.class
plugins.test/externalsearch/include/ExternalSearchPlugin.class	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fexternalsearch%2Finclude%2FExternalSearchPlugin.class
plugins.test/externalsearch/include/externalsearch-init.php	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fexternalsearch%2Finclude%2Fexternalsearch-init.php
plugins.test/externalsearch/lib	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fexternalsearch%2Flib
plugins.test/externalsearch/lib/externalsearch-init.sql	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fexternalsearch%2Flib%2Fexternalsearch-init.sql
plugins.test/fckeditor	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor
plugins.test/fckeditor/AUTHORS	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2FAUTHORS
plugins.test/fckeditor/COPYING	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2FCOPYING
plugins.test/fckeditor/ChangeLog	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2FChangeLog
plugins.test/fckeditor/README	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2FREADME
plugins.test/fckeditor/common	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fcommon
plugins.test/fckeditor/common/fckeditor-init.php	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fcommon%2Ffckeditor-init.php
plugins.test/fckeditor/common/fckeditorPlugin.class	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fcommon%2FfckeditorPlugin.class
plugins.test/fckeditor/db	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fdb
plugins.test/fckeditor/db/schema.psql	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fdb%2Fschema.psql
plugins.test/fckeditor/www	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww
plugins.test/fckeditor/www/_documentation.html	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2F_documentation.html
plugins.test/fckeditor/www/_whatsnew.html	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2F_whatsnew.html
plugins.test/fckeditor/www/editor	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor
plugins.test/fckeditor/www/editor/css	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fcss
plugins.test/fckeditor/www/editor/css/behaviors	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fcss%2Fbehaviors
plugins.test/fckeditor/www/editor/css/behaviors/disablehandles.htc	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fcss%2Fbehaviors%2Fdisablehandles.htc
plugins.test/fckeditor/www/editor/css/behaviors/hiddenfield.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fcss%2Fbehaviors%2Fhiddenfield.gif
plugins.test/fckeditor/www/editor/css/behaviors/hiddenfield.htc	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fcss%2Fbehaviors%2Fhiddenfield.htc
plugins.test/fckeditor/www/editor/css/behaviors/showtableborders.htc	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fcss%2Fbehaviors%2Fshowtableborders.htc
plugins.test/fckeditor/www/editor/css/fck_editorarea.css	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fcss%2Ffck_editorarea.css
plugins.test/fckeditor/www/editor/css/fck_internal.css	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fcss%2Ffck_internal.css
plugins.test/fckeditor/www/editor/css/fck_showtableborders_gecko.css	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fcss%2Ffck_showtableborders_gecko.css
plugins.test/fckeditor/www/editor/css/images	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fcss%2Fimages
plugins.test/fckeditor/www/editor/css/images/Thumbs.db	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fcss%2Fimages%2FThumbs.db
plugins.test/fckeditor/www/editor/css/images/fck_anchor.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fcss%2Fimages%2Ffck_anchor.gif
plugins.test/fckeditor/www/editor/css/images/fck_flashlogo.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fcss%2Fimages%2Ffck_flashlogo.gif
plugins.test/fckeditor/www/editor/css/images/fck_pagebreak.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fcss%2Fimages%2Ffck_pagebreak.gif
plugins.test/fckeditor/www/editor/dialog	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fdialog
plugins.test/fckeditor/www/editor/dialog/common	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fdialog%2Fcommon
plugins.test/fckeditor/www/editor/dialog/common/fck_dialog_common.css	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fdialog%2Fcommon%2Ffck_dialog_common.css
plugins.test/fckeditor/www/editor/dialog/common/fck_dialog_common.js	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fdialog%2Fcommon%2Ffck_dialog_common.js
plugins.test/fckeditor/www/editor/dialog/common/fcknumericfield.htc	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fdialog%2Fcommon%2Ffcknumericfield.htc
plugins.test/fckeditor/www/editor/dialog/common/images	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fdialog%2Fcommon%2Fimages
plugins.test/fckeditor/www/editor/dialog/common/images/Thumbs.db	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fdialog%2Fcommon%2Fimages%2FThumbs.db
plugins.test/fckeditor/www/editor/dialog/common/images/locked.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fdialog%2Fcommon%2Fimages%2Flocked.gif
plugins.test/fckeditor/www/editor/dialog/common/images/reset.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fdialog%2Fcommon%2Fimages%2Freset.gif
plugins.test/fckeditor/www/editor/dialog/common/images/unlocked.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fdialog%2Fcommon%2Fimages%2Funlocked.gif
plugins.test/fckeditor/www/editor/dialog/common/moz-bindings.xml	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fdialog%2Fcommon%2Fmoz-bindings.xml
plugins.test/fckeditor/www/editor/dialog/fck_about	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fdialog%2Ffck_about
plugins.test/fckeditor/www/editor/dialog/fck_about.html	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fdialog%2Ffck_about.html
plugins.test/fckeditor/www/editor/dialog/fck_about/Thumbs.db	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fdialog%2Ffck_about%2FThumbs.db
plugins.test/fckeditor/www/editor/dialog/fck_about/lgpl.html	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fdialog%2Ffck_about%2Flgpl.html
plugins.test/fckeditor/www/editor/dialog/fck_about/logo_fckeditor.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fdialog%2Ffck_about%2Flogo_fckeditor.gif
plugins.test/fckeditor/www/editor/dialog/fck_about/logo_fredck.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fdialog%2Ffck_about%2Flogo_fredck.gif
plugins.test/fckeditor/www/editor/dialog/fck_anchor.html	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fdialog%2Ffck_anchor.html
plugins.test/fckeditor/www/editor/dialog/fck_button.html	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fdialog%2Ffck_button.html
plugins.test/fckeditor/www/editor/dialog/fck_checkbox.html	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fdialog%2Ffck_checkbox.html
plugins.test/fckeditor/www/editor/dialog/fck_colorselector.html	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fdialog%2Ffck_colorselector.html
plugins.test/fckeditor/www/editor/dialog/fck_docprops	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fdialog%2Ffck_docprops
plugins.test/fckeditor/www/editor/dialog/fck_docprops.html	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fdialog%2Ffck_docprops.html
plugins.test/fckeditor/www/editor/dialog/fck_docprops/fck_document_preview.html	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fdialog%2Ffck_docprops%2Ffck_document_preview.html
plugins.test/fckeditor/www/editor/dialog/fck_find.html	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fdialog%2Ffck_find.html
plugins.test/fckeditor/www/editor/dialog/fck_flash	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fdialog%2Ffck_flash
plugins.test/fckeditor/www/editor/dialog/fck_flash.html	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fdialog%2Ffck_flash.html
plugins.test/fckeditor/www/editor/dialog/fck_flash/fck_flash.js	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fdialog%2Ffck_flash%2Ffck_flash.js
plugins.test/fckeditor/www/editor/dialog/fck_form.html	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fdialog%2Ffck_form.html
plugins.test/fckeditor/www/editor/dialog/fck_hiddenfield.html	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fdialog%2Ffck_hiddenfield.html
plugins.test/fckeditor/www/editor/dialog/fck_image	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fdialog%2Ffck_image
plugins.test/fckeditor/www/editor/dialog/fck_image.html	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fdialog%2Ffck_image.html
plugins.test/fckeditor/www/editor/dialog/fck_image/fck_image.js	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fdialog%2Ffck_image%2Ffck_image.js
plugins.test/fckeditor/www/editor/dialog/fck_link	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fdialog%2Ffck_link
plugins.test/fckeditor/www/editor/dialog/fck_link.html	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fdialog%2Ffck_link.html
plugins.test/fckeditor/www/editor/dialog/fck_link/fck_link.js	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fdialog%2Ffck_link%2Ffck_link.js
plugins.test/fckeditor/www/editor/dialog/fck_listprop.html	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fdialog%2Ffck_listprop.html
plugins.test/fckeditor/www/editor/dialog/fck_paste.html	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fdialog%2Ffck_paste.html
plugins.test/fckeditor/www/editor/dialog/fck_radiobutton.html	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fdialog%2Ffck_radiobutton.html
plugins.test/fckeditor/www/editor/dialog/fck_replace.html	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fdialog%2Ffck_replace.html
plugins.test/fckeditor/www/editor/dialog/fck_select	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fdialog%2Ffck_select
plugins.test/fckeditor/www/editor/dialog/fck_select.html	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fdialog%2Ffck_select.html
plugins.test/fckeditor/www/editor/dialog/fck_select/fck_select.js	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fdialog%2Ffck_select%2Ffck_select.js
plugins.test/fckeditor/www/editor/dialog/fck_smiley.html	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fdialog%2Ffck_smiley.html
plugins.test/fckeditor/www/editor/dialog/fck_source.html	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fdialog%2Ffck_source.html
plugins.test/fckeditor/www/editor/dialog/fck_specialchar.html	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fdialog%2Ffck_specialchar.html
plugins.test/fckeditor/www/editor/dialog/fck_spellerpages	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fdialog%2Ffck_spellerpages
plugins.test/fckeditor/www/editor/dialog/fck_spellerpages.html	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fdialog%2Ffck_spellerpages.html
plugins.test/fckeditor/www/editor/dialog/fck_spellerpages/spellerpages	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fdialog%2Ffck_spellerpages%2Fspellerpages
plugins.test/fckeditor/www/editor/dialog/fck_spellerpages/spellerpages/blank.html	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fdialog%2Ffck_spellerpages%2Fspellerpages%2Fblank.html
plugins.test/fckeditor/www/editor/dialog/fck_spellerpages/spellerpages/controlWindow.js	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fdialog%2Ffck_spellerpages%2Fspellerpages%2FcontrolWindow.js
plugins.test/fckeditor/www/editor/dialog/fck_spellerpages/spellerpages/controls.html	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fdialog%2Ffck_spellerpages%2Fspellerpages%2Fcontrols.html
plugins.test/fckeditor/www/editor/dialog/fck_spellerpages/spellerpages/server-scripts	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fdialog%2Ffck_spellerpages%2Fspellerpages%2Fserver-scripts
plugins.test/fckeditor/www/editor/dialog/fck_spellerpages/spellerpages/server-scripts/spellchecker.cfm	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fdialog%2Ffck_spellerpages%2Fspellerpages%2Fserver-scripts%2Fspellchecker.cfm
plugins.test/fckeditor/www/editor/dialog/fck_spellerpages/spellerpages/server-scripts/spellchecker.php	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fdialog%2Ffck_spellerpages%2Fspellerpages%2Fserver-scripts%2Fspellchecker.php
plugins.test/fckeditor/www/editor/dialog/fck_spellerpages/spellerpages/server-scripts/spellchecker.pl	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fdialog%2Ffck_spellerpages%2Fspellerpages%2Fserver-scripts%2Fspellchecker.pl
plugins.test/fckeditor/www/editor/dialog/fck_spellerpages/spellerpages/spellChecker.js	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fdialog%2Ffck_spellerpages%2Fspellerpages%2FspellChecker.js
plugins.test/fckeditor/www/editor/dialog/fck_spellerpages/spellerpages/spellchecker.html	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fdialog%2Ffck_spellerpages%2Fspellerpages%2Fspellchecker.html
plugins.test/fckeditor/www/editor/dialog/fck_spellerpages/spellerpages/spellerStyle.css	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fdialog%2Ffck_spellerpages%2Fspellerpages%2FspellerStyle.css
plugins.test/fckeditor/www/editor/dialog/fck_spellerpages/spellerpages/wordWindow.js	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fdialog%2Ffck_spellerpages%2Fspellerpages%2FwordWindow.js
plugins.test/fckeditor/www/editor/dialog/fck_table.html	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fdialog%2Ffck_table.html
plugins.test/fckeditor/www/editor/dialog/fck_tablecell.html	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fdialog%2Ffck_tablecell.html
plugins.test/fckeditor/www/editor/dialog/fck_template	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fdialog%2Ffck_template
plugins.test/fckeditor/www/editor/dialog/fck_template.html	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fdialog%2Ffck_template.html
plugins.test/fckeditor/www/editor/dialog/fck_template/images	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fdialog%2Ffck_template%2Fimages
plugins.test/fckeditor/www/editor/dialog/fck_template/images/Thumbs.db	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fdialog%2Ffck_template%2Fimages%2FThumbs.db
plugins.test/fckeditor/www/editor/dialog/fck_template/images/template1.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fdialog%2Ffck_template%2Fimages%2Ftemplate1.gif
plugins.test/fckeditor/www/editor/dialog/fck_template/images/template2.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fdialog%2Ffck_template%2Fimages%2Ftemplate2.gif
plugins.test/fckeditor/www/editor/dialog/fck_template/images/template3.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fdialog%2Ffck_template%2Fimages%2Ftemplate3.gif
plugins.test/fckeditor/www/editor/dialog/fck_textarea.html	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fdialog%2Ffck_textarea.html
plugins.test/fckeditor/www/editor/dialog/fck_textfield.html	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fdialog%2Ffck_textfield.html
plugins.test/fckeditor/www/editor/dialog/fck_universalkey	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fdialog%2Ffck_universalkey
plugins.test/fckeditor/www/editor/dialog/fck_universalkey.html	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fdialog%2Ffck_universalkey.html
plugins.test/fckeditor/www/editor/dialog/fck_universalkey/00.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fdialog%2Ffck_universalkey%2F00.gif
plugins.test/fckeditor/www/editor/dialog/fck_universalkey/data.js	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fdialog%2Ffck_universalkey%2Fdata.js
plugins.test/fckeditor/www/editor/dialog/fck_universalkey/diacritic.js	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fdialog%2Ffck_universalkey%2Fdiacritic.js
plugins.test/fckeditor/www/editor/dialog/fck_universalkey/dialogue.js	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fdialog%2Ffck_universalkey%2Fdialogue.js
plugins.test/fckeditor/www/editor/dialog/fck_universalkey/fck_universalkey.css	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fdialog%2Ffck_universalkey%2Ffck_universalkey.css
plugins.test/fckeditor/www/editor/dialog/fck_universalkey/keyboard_layout.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fdialog%2Ffck_universalkey%2Fkeyboard_layout.gif
plugins.test/fckeditor/www/editor/dialog/fck_universalkey/multihexa.js	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fdialog%2Ffck_universalkey%2Fmultihexa.js
plugins.test/fckeditor/www/editor/fckblank.html	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Ffckblank.html
plugins.test/fckeditor/www/editor/fckdebug.html	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Ffckdebug.html
plugins.test/fckeditor/www/editor/fckdialog.html	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Ffckdialog.html
plugins.test/fckeditor/www/editor/fckeditor.html	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Ffckeditor.html
plugins.test/fckeditor/www/editor/fckeditor.original.html	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Ffckeditor.original.html
plugins.test/fckeditor/www/editor/filemanager	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Ffilemanager
plugins.test/fckeditor/www/editor/filemanager/browser	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Ffilemanager%2Fbrowser
plugins.test/fckeditor/www/editor/filemanager/browser/default	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Ffilemanager%2Fbrowser%2Fdefault
plugins.test/fckeditor/www/editor/filemanager/browser/default/browser.css	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Ffilemanager%2Fbrowser%2Fdefault%2Fbrowser.css
plugins.test/fckeditor/www/editor/filemanager/browser/default/browser.html	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Ffilemanager%2Fbrowser%2Fdefault%2Fbrowser.html
plugins.test/fckeditor/www/editor/filemanager/browser/default/connectors	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Ffilemanager%2Fbrowser%2Fdefault%2Fconnectors
plugins.test/fckeditor/www/editor/filemanager/browser/default/connectors/php	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Ffilemanager%2Fbrowser%2Fdefault%2Fconnectors%2Fphp
plugins.test/fckeditor/www/editor/filemanager/browser/default/connectors/php/basexml.php	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Ffilemanager%2Fbrowser%2Fdefault%2Fconnectors%2Fphp%2Fbasexml.php
plugins.test/fckeditor/www/editor/filemanager/browser/default/connectors/php/commands.php	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Ffilemanager%2Fbrowser%2Fdefault%2Fconnectors%2Fphp%2Fcommands.php
plugins.test/fckeditor/www/editor/filemanager/browser/default/connectors/php/config.php	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Ffilemanager%2Fbrowser%2Fdefault%2Fconnectors%2Fphp%2Fconfig.php
plugins.test/fckeditor/www/editor/filemanager/browser/default/connectors/php/connector.php	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Ffilemanager%2Fbrowser%2Fdefault%2Fconnectors%2Fphp%2Fconnector.php
plugins.test/fckeditor/www/editor/filemanager/browser/default/connectors/php/io.php	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Ffilemanager%2Fbrowser%2Fdefault%2Fconnectors%2Fphp%2Fio.php
plugins.test/fckeditor/www/editor/filemanager/browser/default/connectors/php/util.php	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Ffilemanager%2Fbrowser%2Fdefault%2Fconnectors%2Fphp%2Futil.php
plugins.test/fckeditor/www/editor/filemanager/browser/default/connectors/test.html	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Ffilemanager%2Fbrowser%2Fdefault%2Fconnectors%2Ftest.html
plugins.test/fckeditor/www/editor/filemanager/browser/default/frmactualfolder.html	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Ffilemanager%2Fbrowser%2Fdefault%2Ffrmactualfolder.html
plugins.test/fckeditor/www/editor/filemanager/browser/default/frmcreatefolder.html	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Ffilemanager%2Fbrowser%2Fdefault%2Ffrmcreatefolder.html
plugins.test/fckeditor/www/editor/filemanager/browser/default/frmfolders.html	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Ffilemanager%2Fbrowser%2Fdefault%2Ffrmfolders.html
plugins.test/fckeditor/www/editor/filemanager/browser/default/frmresourceslist.html	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Ffilemanager%2Fbrowser%2Fdefault%2Ffrmresourceslist.html
plugins.test/fckeditor/www/editor/filemanager/browser/default/frmresourcetype.html	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Ffilemanager%2Fbrowser%2Fdefault%2Ffrmresourcetype.html
plugins.test/fckeditor/www/editor/filemanager/browser/default/frmupload.html	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Ffilemanager%2Fbrowser%2Fdefault%2Ffrmupload.html
plugins.test/fckeditor/www/editor/filemanager/browser/default/images	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Ffilemanager%2Fbrowser%2Fdefault%2Fimages
plugins.test/fckeditor/www/editor/filemanager/browser/default/images/ButtonArrow.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Ffilemanager%2Fbrowser%2Fdefault%2Fimages%2FButtonArrow.gif
plugins.test/fckeditor/www/editor/filemanager/browser/default/images/Folder.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Ffilemanager%2Fbrowser%2Fdefault%2Fimages%2FFolder.gif
plugins.test/fckeditor/www/editor/filemanager/browser/default/images/Folder32.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Ffilemanager%2Fbrowser%2Fdefault%2Fimages%2FFolder32.gif
plugins.test/fckeditor/www/editor/filemanager/browser/default/images/FolderOpened.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Ffilemanager%2Fbrowser%2Fdefault%2Fimages%2FFolderOpened.gif
plugins.test/fckeditor/www/editor/filemanager/browser/default/images/FolderOpened32.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Ffilemanager%2Fbrowser%2Fdefault%2Fimages%2FFolderOpened32.gif
plugins.test/fckeditor/www/editor/filemanager/browser/default/images/FolderUp.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Ffilemanager%2Fbrowser%2Fdefault%2Fimages%2FFolderUp.gif
plugins.test/fckeditor/www/editor/filemanager/browser/default/images/Thumbs.db	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Ffilemanager%2Fbrowser%2Fdefault%2Fimages%2FThumbs.db
plugins.test/fckeditor/www/editor/filemanager/browser/default/images/icons	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Ffilemanager%2Fbrowser%2Fdefault%2Fimages%2Ficons
plugins.test/fckeditor/www/editor/filemanager/browser/default/images/icons/32	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Ffilemanager%2Fbrowser%2Fdefault%2Fimages%2Ficons%2F32
plugins.test/fckeditor/www/editor/filemanager/browser/default/images/icons/32/Thumbs.db	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Ffilemanager%2Fbrowser%2Fdefault%2Fimages%2Ficons%2F32%2FThumbs.db
plugins.test/fckeditor/www/editor/filemanager/browser/default/images/icons/32/ai.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Ffilemanager%2Fbrowser%2Fdefault%2Fimages%2Ficons%2F32%2Fai.gif
plugins.test/fckeditor/www/editor/filemanager/browser/default/images/icons/32/avi.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Ffilemanager%2Fbrowser%2Fdefault%2Fimages%2Ficons%2F32%2Favi.gif
plugins.test/fckeditor/www/editor/filemanager/browser/default/images/icons/32/bmp.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Ffilemanager%2Fbrowser%2Fdefault%2Fimages%2Ficons%2F32%2Fbmp.gif
plugins.test/fckeditor/www/editor/filemanager/browser/default/images/icons/32/cs.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Ffilemanager%2Fbrowser%2Fdefault%2Fimages%2Ficons%2F32%2Fcs.gif
plugins.test/fckeditor/www/editor/filemanager/browser/default/images/icons/32/default.icon.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Ffilemanager%2Fbrowser%2Fdefault%2Fimages%2Ficons%2F32%2Fdefault.icon.gif
plugins.test/fckeditor/www/editor/filemanager/browser/default/images/icons/32/dll.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Ffilemanager%2Fbrowser%2Fdefault%2Fimages%2Ficons%2F32%2Fdll.gif
plugins.test/fckeditor/www/editor/filemanager/browser/default/images/icons/32/doc.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Ffilemanager%2Fbrowser%2Fdefault%2Fimages%2Ficons%2F32%2Fdoc.gif
plugins.test/fckeditor/www/editor/filemanager/browser/default/images/icons/32/exe.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Ffilemanager%2Fbrowser%2Fdefault%2Fimages%2Ficons%2F32%2Fexe.gif
plugins.test/fckeditor/www/editor/filemanager/browser/default/images/icons/32/fla.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Ffilemanager%2Fbrowser%2Fdefault%2Fimages%2Ficons%2F32%2Ffla.gif
plugins.test/fckeditor/www/editor/filemanager/browser/default/images/icons/32/gif.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Ffilemanager%2Fbrowser%2Fdefault%2Fimages%2Ficons%2F32%2Fgif.gif
plugins.test/fckeditor/www/editor/filemanager/browser/default/images/icons/32/htm.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Ffilemanager%2Fbrowser%2Fdefault%2Fimages%2Ficons%2F32%2Fhtm.gif
plugins.test/fckeditor/www/editor/filemanager/browser/default/images/icons/32/html.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Ffilemanager%2Fbrowser%2Fdefault%2Fimages%2Ficons%2F32%2Fhtml.gif
plugins.test/fckeditor/www/editor/filemanager/browser/default/images/icons/32/jpg.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Ffilemanager%2Fbrowser%2Fdefault%2Fimages%2Ficons%2F32%2Fjpg.gif
plugins.test/fckeditor/www/editor/filemanager/browser/default/images/icons/32/js.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Ffilemanager%2Fbrowser%2Fdefault%2Fimages%2Ficons%2F32%2Fjs.gif
plugins.test/fckeditor/www/editor/filemanager/browser/default/images/icons/32/mdb.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Ffilemanager%2Fbrowser%2Fdefault%2Fimages%2Ficons%2F32%2Fmdb.gif
plugins.test/fckeditor/www/editor/filemanager/browser/default/images/icons/32/mp3.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Ffilemanager%2Fbrowser%2Fdefault%2Fimages%2Ficons%2F32%2Fmp3.gif
plugins.test/fckeditor/www/editor/filemanager/browser/default/images/icons/32/pdf.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Ffilemanager%2Fbrowser%2Fdefault%2Fimages%2Ficons%2F32%2Fpdf.gif
plugins.test/fckeditor/www/editor/filemanager/browser/default/images/icons/32/ppt.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Ffilemanager%2Fbrowser%2Fdefault%2Fimages%2Ficons%2F32%2Fppt.gif
plugins.test/fckeditor/www/editor/filemanager/browser/default/images/icons/32/rdp.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Ffilemanager%2Fbrowser%2Fdefault%2Fimages%2Ficons%2F32%2Frdp.gif
plugins.test/fckeditor/www/editor/filemanager/browser/default/images/icons/32/swf.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Ffilemanager%2Fbrowser%2Fdefault%2Fimages%2Ficons%2F32%2Fswf.gif
plugins.test/fckeditor/www/editor/filemanager/browser/default/images/icons/32/swt.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Ffilemanager%2Fbrowser%2Fdefault%2Fimages%2Ficons%2F32%2Fswt.gif
plugins.test/fckeditor/www/editor/filemanager/browser/default/images/icons/32/txt.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Ffilemanager%2Fbrowser%2Fdefault%2Fimages%2Ficons%2F32%2Ftxt.gif
plugins.test/fckeditor/www/editor/filemanager/browser/default/images/icons/32/vsd.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Ffilemanager%2Fbrowser%2Fdefault%2Fimages%2Ficons%2F32%2Fvsd.gif
plugins.test/fckeditor/www/editor/filemanager/browser/default/images/icons/32/xls.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Ffilemanager%2Fbrowser%2Fdefault%2Fimages%2Ficons%2F32%2Fxls.gif
plugins.test/fckeditor/www/editor/filemanager/browser/default/images/icons/32/xml.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Ffilemanager%2Fbrowser%2Fdefault%2Fimages%2Ficons%2F32%2Fxml.gif
plugins.test/fckeditor/www/editor/filemanager/browser/default/images/icons/32/zip.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Ffilemanager%2Fbrowser%2Fdefault%2Fimages%2Ficons%2F32%2Fzip.gif
plugins.test/fckeditor/www/editor/filemanager/browser/default/images/icons/Thumbs.db	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Ffilemanager%2Fbrowser%2Fdefault%2Fimages%2Ficons%2FThumbs.db
plugins.test/fckeditor/www/editor/filemanager/browser/default/images/icons/ai.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Ffilemanager%2Fbrowser%2Fdefault%2Fimages%2Ficons%2Fai.gif
plugins.test/fckeditor/www/editor/filemanager/browser/default/images/icons/avi.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Ffilemanager%2Fbrowser%2Fdefault%2Fimages%2Ficons%2Favi.gif
plugins.test/fckeditor/www/editor/filemanager/browser/default/images/icons/bmp.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Ffilemanager%2Fbrowser%2Fdefault%2Fimages%2Ficons%2Fbmp.gif
plugins.test/fckeditor/www/editor/filemanager/browser/default/images/icons/cs.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Ffilemanager%2Fbrowser%2Fdefault%2Fimages%2Ficons%2Fcs.gif
plugins.test/fckeditor/www/editor/filemanager/browser/default/images/icons/default.icon.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Ffilemanager%2Fbrowser%2Fdefault%2Fimages%2Ficons%2Fdefault.icon.gif
plugins.test/fckeditor/www/editor/filemanager/browser/default/images/icons/dll.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Ffilemanager%2Fbrowser%2Fdefault%2Fimages%2Ficons%2Fdll.gif
plugins.test/fckeditor/www/editor/filemanager/browser/default/images/icons/doc.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Ffilemanager%2Fbrowser%2Fdefault%2Fimages%2Ficons%2Fdoc.gif
plugins.test/fckeditor/www/editor/filemanager/browser/default/images/icons/exe.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Ffilemanager%2Fbrowser%2Fdefault%2Fimages%2Ficons%2Fexe.gif
plugins.test/fckeditor/www/editor/filemanager/browser/default/images/icons/fla.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Ffilemanager%2Fbrowser%2Fdefault%2Fimages%2Ficons%2Ffla.gif
plugins.test/fckeditor/www/editor/filemanager/browser/default/images/icons/gif.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Ffilemanager%2Fbrowser%2Fdefault%2Fimages%2Ficons%2Fgif.gif
plugins.test/fckeditor/www/editor/filemanager/browser/default/images/icons/htm.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Ffilemanager%2Fbrowser%2Fdefault%2Fimages%2Ficons%2Fhtm.gif
plugins.test/fckeditor/www/editor/filemanager/browser/default/images/icons/html.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Ffilemanager%2Fbrowser%2Fdefault%2Fimages%2Ficons%2Fhtml.gif
plugins.test/fckeditor/www/editor/filemanager/browser/default/images/icons/jpg.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Ffilemanager%2Fbrowser%2Fdefault%2Fimages%2Ficons%2Fjpg.gif
plugins.test/fckeditor/www/editor/filemanager/browser/default/images/icons/js.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Ffilemanager%2Fbrowser%2Fdefault%2Fimages%2Ficons%2Fjs.gif
plugins.test/fckeditor/www/editor/filemanager/browser/default/images/icons/mdb.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Ffilemanager%2Fbrowser%2Fdefault%2Fimages%2Ficons%2Fmdb.gif
plugins.test/fckeditor/www/editor/filemanager/browser/default/images/icons/mp3.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Ffilemanager%2Fbrowser%2Fdefault%2Fimages%2Ficons%2Fmp3.gif
plugins.test/fckeditor/www/editor/filemanager/browser/default/images/icons/pdf.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Ffilemanager%2Fbrowser%2Fdefault%2Fimages%2Ficons%2Fpdf.gif
plugins.test/fckeditor/www/editor/filemanager/browser/default/images/icons/ppt.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Ffilemanager%2Fbrowser%2Fdefault%2Fimages%2Ficons%2Fppt.gif
plugins.test/fckeditor/www/editor/filemanager/browser/default/images/icons/rdp.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Ffilemanager%2Fbrowser%2Fdefault%2Fimages%2Ficons%2Frdp.gif
plugins.test/fckeditor/www/editor/filemanager/browser/default/images/icons/swf.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Ffilemanager%2Fbrowser%2Fdefault%2Fimages%2Ficons%2Fswf.gif
plugins.test/fckeditor/www/editor/filemanager/browser/default/images/icons/swt.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Ffilemanager%2Fbrowser%2Fdefault%2Fimages%2Ficons%2Fswt.gif
plugins.test/fckeditor/www/editor/filemanager/browser/default/images/icons/txt.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Ffilemanager%2Fbrowser%2Fdefault%2Fimages%2Ficons%2Ftxt.gif
plugins.test/fckeditor/www/editor/filemanager/browser/default/images/icons/vsd.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Ffilemanager%2Fbrowser%2Fdefault%2Fimages%2Ficons%2Fvsd.gif
plugins.test/fckeditor/www/editor/filemanager/browser/default/images/icons/xls.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Ffilemanager%2Fbrowser%2Fdefault%2Fimages%2Ficons%2Fxls.gif
plugins.test/fckeditor/www/editor/filemanager/browser/default/images/icons/xml.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Ffilemanager%2Fbrowser%2Fdefault%2Fimages%2Ficons%2Fxml.gif
plugins.test/fckeditor/www/editor/filemanager/browser/default/images/icons/zip.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Ffilemanager%2Fbrowser%2Fdefault%2Fimages%2Ficons%2Fzip.gif
plugins.test/fckeditor/www/editor/filemanager/browser/default/images/spacer.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Ffilemanager%2Fbrowser%2Fdefault%2Fimages%2Fspacer.gif
plugins.test/fckeditor/www/editor/filemanager/browser/default/js	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Ffilemanager%2Fbrowser%2Fdefault%2Fjs
plugins.test/fckeditor/www/editor/filemanager/browser/default/js/common.js	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Ffilemanager%2Fbrowser%2Fdefault%2Fjs%2Fcommon.js
plugins.test/fckeditor/www/editor/filemanager/browser/default/js/fckxml.js	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Ffilemanager%2Fbrowser%2Fdefault%2Fjs%2Ffckxml.js
plugins.test/fckeditor/www/editor/filemanager/browser/mcpuk	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Ffilemanager%2Fbrowser%2Fmcpuk
plugins.test/fckeditor/www/editor/filemanager/browser/mcpuk/browser.css	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Ffilemanager%2Fbrowser%2Fmcpuk%2Fbrowser.css
plugins.test/fckeditor/www/editor/filemanager/browser/mcpuk/browser.html	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Ffilemanager%2Fbrowser%2Fmcpuk%2Fbrowser.html
plugins.test/fckeditor/www/editor/filemanager/browser/mcpuk/connectors	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Ffilemanager%2Fbrowser%2Fmcpuk%2Fconnectors
plugins.test/fckeditor/www/editor/filemanager/browser/mcpuk/connectors/php	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Ffilemanager%2Fbrowser%2Fmcpuk%2Fconnectors%2Fphp
plugins.test/fckeditor/www/editor/filemanager/browser/mcpuk/connectors/php/Auth	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Ffilemanager%2Fbrowser%2Fmcpuk%2Fconnectors%2Fphp%2FAuth
plugins.test/fckeditor/www/editor/filemanager/browser/mcpuk/connectors/php/Auth/Default.php	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Ffilemanager%2Fbrowser%2Fmcpuk%2Fconnectors%2Fphp%2FAuth%2FDefault.php
plugins.test/fckeditor/www/editor/filemanager/browser/mcpuk/connectors/php/Commands	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Ffilemanager%2Fbrowser%2Fmcpuk%2Fconnectors%2Fphp%2FCommands
plugins.test/fckeditor/www/editor/filemanager/browser/mcpuk/connectors/php/Commands/CreateFolder.php	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Ffilemanager%2Fbrowser%2Fmcpuk%2Fconnectors%2Fphp%2FCommands%2FCreateFolder.php
plugins.test/fckeditor/www/editor/filemanager/browser/mcpuk/connectors/php/Commands/DeleteFile.php	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Ffilemanager%2Fbrowser%2Fmcpuk%2Fconnectors%2Fphp%2FCommands%2FDeleteFile.php
plugins.test/fckeditor/www/editor/filemanager/browser/mcpuk/connectors/php/Commands/DeleteFolder.php	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Ffilemanager%2Fbrowser%2Fmcpuk%2Fconnectors%2Fphp%2FCommands%2FDeleteFolder.php
plugins.test/fckeditor/www/editor/filemanager/browser/mcpuk/connectors/php/Commands/FileUpload.php	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Ffilemanager%2Fbrowser%2Fmcpuk%2Fconnectors%2Fphp%2FCommands%2FFileUpload.php
plugins.test/fckeditor/www/editor/filemanager/browser/mcpuk/connectors/php/Commands/GetFolders.php	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Ffilemanager%2Fbrowser%2Fmcpuk%2Fconnectors%2Fphp%2FCommands%2FGetFolders.php
plugins.test/fckeditor/www/editor/filemanager/browser/mcpuk/connectors/php/Commands/GetFoldersAndFiles.php	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Ffilemanager%2Fbrowser%2Fmcpuk%2Fconnectors%2Fphp%2FCommands%2FGetFoldersAndFiles.php
plugins.test/fckeditor/www/editor/filemanager/browser/mcpuk/connectors/php/Commands/GetUploadProgress.php	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Ffilemanager%2Fbrowser%2Fmcpuk%2Fconnectors%2Fphp%2FCommands%2FGetUploadProgress.php
plugins.test/fckeditor/www/editor/filemanager/browser/mcpuk/connectors/php/Commands/RenameFile.php	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Ffilemanager%2Fbrowser%2Fmcpuk%2Fconnectors%2Fphp%2FCommands%2FRenameFile.php
plugins.test/fckeditor/www/editor/filemanager/browser/mcpuk/connectors/php/Commands/RenameFolder.php	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Ffilemanager%2Fbrowser%2Fmcpuk%2Fconnectors%2Fphp%2FCommands%2FRenameFolder.php
plugins.test/fckeditor/www/editor/filemanager/browser/mcpuk/connectors/php/Commands/Thumbnail.php	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Ffilemanager%2Fbrowser%2Fmcpuk%2Fconnectors%2Fphp%2FCommands%2FThumbnail.php
plugins.test/fckeditor/www/editor/filemanager/browser/mcpuk/connectors/php/Commands/helpers	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Ffilemanager%2Fbrowser%2Fmcpuk%2Fconnectors%2Fphp%2FCommands%2Fhelpers
plugins.test/fckeditor/www/editor/filemanager/browser/mcpuk/connectors/php/Commands/helpers/.htaccess	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Ffilemanager%2Fbrowser%2Fmcpuk%2Fconnectors%2Fphp%2FCommands%2Fhelpers%2F.htaccess
plugins.test/fckeditor/www/editor/filemanager/browser/mcpuk/connectors/php/Commands/helpers/header.cgi	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Ffilemanager%2Fbrowser%2Fmcpuk%2Fconnectors%2Fphp%2FCommands%2Fhelpers%2Fheader.cgi
plugins.test/fckeditor/www/editor/filemanager/browser/mcpuk/connectors/php/Commands/helpers/iconlookup.php	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Ffilemanager%2Fbrowser%2Fmcpuk%2Fconnectors%2Fphp%2FCommands%2Fhelpers%2Ficonlookup.php
plugins.test/fckeditor/www/editor/filemanager/browser/mcpuk/connectors/php/Commands/helpers/progress.cgi	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Ffilemanager%2Fbrowser%2Fmcpuk%2Fconnectors%2Fphp%2FCommands%2Fhelpers%2Fprogress.cgi
plugins.test/fckeditor/www/editor/filemanager/browser/mcpuk/connectors/php/Commands/helpers/upload.cgi	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Ffilemanager%2Fbrowser%2Fmcpuk%2Fconnectors%2Fphp%2FCommands%2Fhelpers%2Fupload.cgi
plugins.test/fckeditor/www/editor/filemanager/browser/mcpuk/connectors/php/Docs	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Ffilemanager%2Fbrowser%2Fmcpuk%2Fconnectors%2Fphp%2FDocs
plugins.test/fckeditor/www/editor/filemanager/browser/mcpuk/connectors/php/Docs/AuthenticationHandlers.txt	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Ffilemanager%2Fbrowser%2Fmcpuk%2Fconnectors%2Fphp%2FDocs%2FAuthenticationHandlers.txt
plugins.test/fckeditor/www/editor/filemanager/browser/mcpuk/connectors/php/Docs/license.txt	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Ffilemanager%2Fbrowser%2Fmcpuk%2Fconnectors%2Fphp%2FDocs%2Flicense.txt
plugins.test/fckeditor/www/editor/filemanager/browser/mcpuk/connectors/php/Docs/readme.txt	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Ffilemanager%2Fbrowser%2Fmcpuk%2Fconnectors%2Fphp%2FDocs%2Freadme.txt
plugins.test/fckeditor/www/editor/filemanager/browser/mcpuk/connectors/php/config.php	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Ffilemanager%2Fbrowser%2Fmcpuk%2Fconnectors%2Fphp%2Fconfig.php
plugins.test/fckeditor/www/editor/filemanager/browser/mcpuk/connectors/php/connector.php	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Ffilemanager%2Fbrowser%2Fmcpuk%2Fconnectors%2Fphp%2Fconnector.php
plugins.test/fckeditor/www/editor/filemanager/browser/mcpuk/connectors/php/dtd	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Ffilemanager%2Fbrowser%2Fmcpuk%2Fconnectors%2Fphp%2Fdtd
plugins.test/fckeditor/www/editor/filemanager/browser/mcpuk/connectors/php/dtd/iso-lat1.ent	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Ffilemanager%2Fbrowser%2Fmcpuk%2Fconnectors%2Fphp%2Fdtd%2Fiso-lat1.ent
plugins.test/fckeditor/www/editor/filemanager/browser/mcpuk/connectors/php/images	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Ffilemanager%2Fbrowser%2Fmcpuk%2Fconnectors%2Fphp%2Fimages
plugins.test/fckeditor/www/editor/filemanager/browser/mcpuk/connectors/php/images/ascii.jpg	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Ffilemanager%2Fbrowser%2Fmcpuk%2Fconnectors%2Fphp%2Fimages%2Fascii.jpg
plugins.test/fckeditor/www/editor/filemanager/browser/mcpuk/connectors/php/images/binary.jpg	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Ffilemanager%2Fbrowser%2Fmcpuk%2Fconnectors%2Fphp%2Fimages%2Fbinary.jpg
plugins.test/fckeditor/www/editor/filemanager/browser/mcpuk/connectors/php/images/document2.jpg	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Ffilemanager%2Fbrowser%2Fmcpuk%2Fconnectors%2Fphp%2Fimages%2Fdocument2.jpg
plugins.test/fckeditor/www/editor/filemanager/browser/mcpuk/connectors/php/images/email.jpg	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Ffilemanager%2Fbrowser%2Fmcpuk%2Fconnectors%2Fphp%2Fimages%2Femail.jpg
plugins.test/fckeditor/www/editor/filemanager/browser/mcpuk/connectors/php/images/empty.jpg	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Ffilemanager%2Fbrowser%2Fmcpuk%2Fconnectors%2Fphp%2Fimages%2Fempty.jpg
plugins.test/fckeditor/www/editor/filemanager/browser/mcpuk/connectors/php/images/html.jpg	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Ffilemanager%2Fbrowser%2Fmcpuk%2Fconnectors%2Fphp%2Fimages%2Fhtml.jpg
plugins.test/fckeditor/www/editor/filemanager/browser/mcpuk/connectors/php/images/image.jpg	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Ffilemanager%2Fbrowser%2Fmcpuk%2Fconnectors%2Fphp%2Fimages%2Fimage.jpg
plugins.test/fckeditor/www/editor/filemanager/browser/mcpuk/connectors/php/images/info.jpg	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Ffilemanager%2Fbrowser%2Fmcpuk%2Fconnectors%2Fphp%2Fimages%2Finfo.jpg
plugins.test/fckeditor/www/editor/filemanager/browser/mcpuk/connectors/php/images/kmplot.jpg	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Ffilemanager%2Fbrowser%2Fmcpuk%2Fconnectors%2Fphp%2Fimages%2Fkmplot.jpg
plugins.test/fckeditor/www/editor/filemanager/browser/mcpuk/connectors/php/images/kmultiple.jpg	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Ffilemanager%2Fbrowser%2Fmcpuk%2Fconnectors%2Fphp%2Fimages%2Fkmultiple.jpg
plugins.test/fckeditor/www/editor/filemanager/browser/mcpuk/connectors/php/images/pdf.jpg	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Ffilemanager%2Fbrowser%2Fmcpuk%2Fconnectors%2Fphp%2Fimages%2Fpdf.jpg
plugins.test/fckeditor/www/editor/filemanager/browser/mcpuk/connectors/php/images/php.jpg	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Ffilemanager%2Fbrowser%2Fmcpuk%2Fconnectors%2Fphp%2Fimages%2Fphp.jpg
plugins.test/fckeditor/www/editor/filemanager/browser/mcpuk/connectors/php/images/postscript.jpg	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Ffilemanager%2Fbrowser%2Fmcpuk%2Fconnectors%2Fphp%2Fimages%2Fpostscript.jpg
plugins.test/fckeditor/www/editor/filemanager/browser/mcpuk/connectors/php/images/real_doc.jpg	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Ffilemanager%2Fbrowser%2Fmcpuk%2Fconnectors%2Fphp%2Fimages%2Freal_doc.jpg
plugins.test/fckeditor/www/editor/filemanager/browser/mcpuk/connectors/php/images/sound.jpg	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Ffilemanager%2Fbrowser%2Fmcpuk%2Fconnectors%2Fphp%2Fimages%2Fsound.jpg
plugins.test/fckeditor/www/editor/filemanager/browser/mcpuk/connectors/php/images/spreadsheet.jpg	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Ffilemanager%2Fbrowser%2Fmcpuk%2Fconnectors%2Fphp%2Fimages%2Fspreadsheet.jpg
plugins.test/fckeditor/www/editor/filemanager/browser/mcpuk/connectors/php/images/tar.jpg	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Ffilemanager%2Fbrowser%2Fmcpuk%2Fconnectors%2Fphp%2Fimages%2Ftar.jpg
plugins.test/fckeditor/www/editor/filemanager/browser/mcpuk/connectors/php/images/video.jpg	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Ffilemanager%2Fbrowser%2Fmcpuk%2Fconnectors%2Fphp%2Fimages%2Fvideo.jpg
plugins.test/fckeditor/www/editor/filemanager/browser/mcpuk/connectors/php/test.html.suspended	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Ffilemanager%2Fbrowser%2Fmcpuk%2Fconnectors%2Fphp%2Ftest.html.suspended
plugins.test/fckeditor/www/editor/filemanager/browser/mcpuk/connectors/php/testme.php.suspended	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Ffilemanager%2Fbrowser%2Fmcpuk%2Fconnectors%2Fphp%2Ftestme.php.suspended
plugins.test/fckeditor/www/editor/filemanager/browser/mcpuk/frmactualfolder.html	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Ffilemanager%2Fbrowser%2Fmcpuk%2Ffrmactualfolder.html
plugins.test/fckeditor/www/editor/filemanager/browser/mcpuk/frmcreatefolder.html	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Ffilemanager%2Fbrowser%2Fmcpuk%2Ffrmcreatefolder.html
plugins.test/fckeditor/www/editor/filemanager/browser/mcpuk/frmfolders.html	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Ffilemanager%2Fbrowser%2Fmcpuk%2Ffrmfolders.html
plugins.test/fckeditor/www/editor/filemanager/browser/mcpuk/frmimageeditor.html	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Ffilemanager%2Fbrowser%2Fmcpuk%2Ffrmimageeditor.html
plugins.test/fckeditor/www/editor/filemanager/browser/mcpuk/frmresourceslist.html	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Ffilemanager%2Fbrowser%2Fmcpuk%2Ffrmresourceslist.html
plugins.test/fckeditor/www/editor/filemanager/browser/mcpuk/frmresourcetype.html	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Ffilemanager%2Fbrowser%2Fmcpuk%2Ffrmresourcetype.html
plugins.test/fckeditor/www/editor/filemanager/browser/mcpuk/frmupload.html	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Ffilemanager%2Fbrowser%2Fmcpuk%2Ffrmupload.html
plugins.test/fckeditor/www/editor/filemanager/browser/mcpuk/images	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Ffilemanager%2Fbrowser%2Fmcpuk%2Fimages
plugins.test/fckeditor/www/editor/filemanager/browser/mcpuk/images/2x2.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Ffilemanager%2Fbrowser%2Fmcpuk%2Fimages%2F2x2.gif
plugins.test/fckeditor/www/editor/filemanager/browser/mcpuk/images/2x2_w.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Ffilemanager%2Fbrowser%2Fmcpuk%2Fimages%2F2x2_w.gif
plugins.test/fckeditor/www/editor/filemanager/browser/mcpuk/images/ButtonArrow.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Ffilemanager%2Fbrowser%2Fmcpuk%2Fimages%2FButtonArrow.gif
plugins.test/fckeditor/www/editor/filemanager/browser/mcpuk/images/Folder.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Ffilemanager%2Fbrowser%2Fmcpuk%2Fimages%2FFolder.gif
plugins.test/fckeditor/www/editor/filemanager/browser/mcpuk/images/Folder32.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Ffilemanager%2Fbrowser%2Fmcpuk%2Fimages%2FFolder32.gif
plugins.test/fckeditor/www/editor/filemanager/browser/mcpuk/images/Folder96.jpg	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Ffilemanager%2Fbrowser%2Fmcpuk%2Fimages%2FFolder96.jpg
plugins.test/fckeditor/www/editor/filemanager/browser/mcpuk/images/FolderOpened.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Ffilemanager%2Fbrowser%2Fmcpuk%2Fimages%2FFolderOpened.gif
plugins.test/fckeditor/www/editor/filemanager/browser/mcpuk/images/FolderOpened32.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Ffilemanager%2Fbrowser%2Fmcpuk%2Fimages%2FFolderOpened32.gif
plugins.test/fckeditor/www/editor/filemanager/browser/mcpuk/images/FolderUp.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Ffilemanager%2Fbrowser%2Fmcpuk%2Fimages%2FFolderUp.gif
plugins.test/fckeditor/www/editor/filemanager/browser/mcpuk/images/Thumbs.db	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Ffilemanager%2Fbrowser%2Fmcpuk%2Fimages%2FThumbs.db
plugins.test/fckeditor/www/editor/filemanager/browser/mcpuk/images/close.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Ffilemanager%2Fbrowser%2Fmcpuk%2Fimages%2Fclose.gif
plugins.test/fckeditor/www/editor/filemanager/browser/mcpuk/images/delete.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Ffilemanager%2Fbrowser%2Fmcpuk%2Fimages%2Fdelete.gif
plugins.test/fckeditor/www/editor/filemanager/browser/mcpuk/images/edit.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Ffilemanager%2Fbrowser%2Fmcpuk%2Fimages%2Fedit.gif
plugins.test/fckeditor/www/editor/filemanager/browser/mcpuk/images/editImage.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Ffilemanager%2Fbrowser%2Fmcpuk%2Fimages%2FeditImage.gif
plugins.test/fckeditor/www/editor/filemanager/browser/mcpuk/images/icons	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Ffilemanager%2Fbrowser%2Fmcpuk%2Fimages%2Ficons
plugins.test/fckeditor/www/editor/filemanager/browser/mcpuk/images/icons/32	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Ffilemanager%2Fbrowser%2Fmcpuk%2Fimages%2Ficons%2F32
plugins.test/fckeditor/www/editor/filemanager/browser/mcpuk/images/icons/32/Thumbs.db	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Ffilemanager%2Fbrowser%2Fmcpuk%2Fimages%2Ficons%2F32%2FThumbs.db
plugins.test/fckeditor/www/editor/filemanager/browser/mcpuk/images/icons/32/ai.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Ffilemanager%2Fbrowser%2Fmcpuk%2Fimages%2Ficons%2F32%2Fai.gif
plugins.test/fckeditor/www/editor/filemanager/browser/mcpuk/images/icons/32/avi.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Ffilemanager%2Fbrowser%2Fmcpuk%2Fimages%2Ficons%2F32%2Favi.gif
plugins.test/fckeditor/www/editor/filemanager/browser/mcpuk/images/icons/32/bmp.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Ffilemanager%2Fbrowser%2Fmcpuk%2Fimages%2Ficons%2F32%2Fbmp.gif
plugins.test/fckeditor/www/editor/filemanager/browser/mcpuk/images/icons/32/cs.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Ffilemanager%2Fbrowser%2Fmcpuk%2Fimages%2Ficons%2F32%2Fcs.gif
plugins.test/fckeditor/www/editor/filemanager/browser/mcpuk/images/icons/32/default.icon.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Ffilemanager%2Fbrowser%2Fmcpuk%2Fimages%2Ficons%2F32%2Fdefault.icon.gif
plugins.test/fckeditor/www/editor/filemanager/browser/mcpuk/images/icons/32/dll.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Ffilemanager%2Fbrowser%2Fmcpuk%2Fimages%2Ficons%2F32%2Fdll.gif
plugins.test/fckeditor/www/editor/filemanager/browser/mcpuk/images/icons/32/doc.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Ffilemanager%2Fbrowser%2Fmcpuk%2Fimages%2Ficons%2F32%2Fdoc.gif
plugins.test/fckeditor/www/editor/filemanager/browser/mcpuk/images/icons/32/exe.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Ffilemanager%2Fbrowser%2Fmcpuk%2Fimages%2Ficons%2F32%2Fexe.gif
plugins.test/fckeditor/www/editor/filemanager/browser/mcpuk/images/icons/32/fla.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Ffilemanager%2Fbrowser%2Fmcpuk%2Fimages%2Ficons%2F32%2Ffla.gif
plugins.test/fckeditor/www/editor/filemanager/browser/mcpuk/images/icons/32/gif.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Ffilemanager%2Fbrowser%2Fmcpuk%2Fimages%2Ficons%2F32%2Fgif.gif
plugins.test/fckeditor/www/editor/filemanager/browser/mcpuk/images/icons/32/htm.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Ffilemanager%2Fbrowser%2Fmcpuk%2Fimages%2Ficons%2F32%2Fhtm.gif
plugins.test/fckeditor/www/editor/filemanager/browser/mcpuk/images/icons/32/html.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Ffilemanager%2Fbrowser%2Fmcpuk%2Fimages%2Ficons%2F32%2Fhtml.gif
plugins.test/fckeditor/www/editor/filemanager/browser/mcpuk/images/icons/32/jpg.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Ffilemanager%2Fbrowser%2Fmcpuk%2Fimages%2Ficons%2F32%2Fjpg.gif
plugins.test/fckeditor/www/editor/filemanager/browser/mcpuk/images/icons/32/js.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Ffilemanager%2Fbrowser%2Fmcpuk%2Fimages%2Ficons%2F32%2Fjs.gif
plugins.test/fckeditor/www/editor/filemanager/browser/mcpuk/images/icons/32/mdb.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Ffilemanager%2Fbrowser%2Fmcpuk%2Fimages%2Ficons%2F32%2Fmdb.gif
plugins.test/fckeditor/www/editor/filemanager/browser/mcpuk/images/icons/32/mp3.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Ffilemanager%2Fbrowser%2Fmcpuk%2Fimages%2Ficons%2F32%2Fmp3.gif
plugins.test/fckeditor/www/editor/filemanager/browser/mcpuk/images/icons/32/pdf.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Ffilemanager%2Fbrowser%2Fmcpuk%2Fimages%2Ficons%2F32%2Fpdf.gif
plugins.test/fckeditor/www/editor/filemanager/browser/mcpuk/images/icons/32/ppt.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Ffilemanager%2Fbrowser%2Fmcpuk%2Fimages%2Ficons%2F32%2Fppt.gif
plugins.test/fckeditor/www/editor/filemanager/browser/mcpuk/images/icons/32/rdp.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Ffilemanager%2Fbrowser%2Fmcpuk%2Fimages%2Ficons%2F32%2Frdp.gif
plugins.test/fckeditor/www/editor/filemanager/browser/mcpuk/images/icons/32/swf.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Ffilemanager%2Fbrowser%2Fmcpuk%2Fimages%2Ficons%2F32%2Fswf.gif
plugins.test/fckeditor/www/editor/filemanager/browser/mcpuk/images/icons/32/swt.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Ffilemanager%2Fbrowser%2Fmcpuk%2Fimages%2Ficons%2F32%2Fswt.gif
plugins.test/fckeditor/www/editor/filemanager/browser/mcpuk/images/icons/32/txt.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Ffilemanager%2Fbrowser%2Fmcpuk%2Fimages%2Ficons%2F32%2Ftxt.gif
plugins.test/fckeditor/www/editor/filemanager/browser/mcpuk/images/icons/32/vsd.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Ffilemanager%2Fbrowser%2Fmcpuk%2Fimages%2Ficons%2F32%2Fvsd.gif
plugins.test/fckeditor/www/editor/filemanager/browser/mcpuk/images/icons/32/xls.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Ffilemanager%2Fbrowser%2Fmcpuk%2Fimages%2Ficons%2F32%2Fxls.gif
plugins.test/fckeditor/www/editor/filemanager/browser/mcpuk/images/icons/32/xml.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Ffilemanager%2Fbrowser%2Fmcpuk%2Fimages%2Ficons%2F32%2Fxml.gif
plugins.test/fckeditor/www/editor/filemanager/browser/mcpuk/images/icons/32/zip.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Ffilemanager%2Fbrowser%2Fmcpuk%2Fimages%2Ficons%2F32%2Fzip.gif
plugins.test/fckeditor/www/editor/filemanager/browser/mcpuk/images/icons/Thumbs.db	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Ffilemanager%2Fbrowser%2Fmcpuk%2Fimages%2Ficons%2FThumbs.db
plugins.test/fckeditor/www/editor/filemanager/browser/mcpuk/images/icons/ai.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Ffilemanager%2Fbrowser%2Fmcpuk%2Fimages%2Ficons%2Fai.gif
plugins.test/fckeditor/www/editor/filemanager/browser/mcpuk/images/icons/avi.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Ffilemanager%2Fbrowser%2Fmcpuk%2Fimages%2Ficons%2Favi.gif
plugins.test/fckeditor/www/editor/filemanager/browser/mcpuk/images/icons/bmp.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Ffilemanager%2Fbrowser%2Fmcpuk%2Fimages%2Ficons%2Fbmp.gif
plugins.test/fckeditor/www/editor/filemanager/browser/mcpuk/images/icons/cs.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Ffilemanager%2Fbrowser%2Fmcpuk%2Fimages%2Ficons%2Fcs.gif
plugins.test/fckeditor/www/editor/filemanager/browser/mcpuk/images/icons/default.icon.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Ffilemanager%2Fbrowser%2Fmcpuk%2Fimages%2Ficons%2Fdefault.icon.gif
plugins.test/fckeditor/www/editor/filemanager/browser/mcpuk/images/icons/dll.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Ffilemanager%2Fbrowser%2Fmcpuk%2Fimages%2Ficons%2Fdll.gif
plugins.test/fckeditor/www/editor/filemanager/browser/mcpuk/images/icons/doc.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Ffilemanager%2Fbrowser%2Fmcpuk%2Fimages%2Ficons%2Fdoc.gif
plugins.test/fckeditor/www/editor/filemanager/browser/mcpuk/images/icons/exe.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Ffilemanager%2Fbrowser%2Fmcpuk%2Fimages%2Ficons%2Fexe.gif
plugins.test/fckeditor/www/editor/filemanager/browser/mcpuk/images/icons/fla.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Ffilemanager%2Fbrowser%2Fmcpuk%2Fimages%2Ficons%2Ffla.gif
plugins.test/fckeditor/www/editor/filemanager/browser/mcpuk/images/icons/gif.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Ffilemanager%2Fbrowser%2Fmcpuk%2Fimages%2Ficons%2Fgif.gif
plugins.test/fckeditor/www/editor/filemanager/browser/mcpuk/images/icons/htm.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Ffilemanager%2Fbrowser%2Fmcpuk%2Fimages%2Ficons%2Fhtm.gif
plugins.test/fckeditor/www/editor/filemanager/browser/mcpuk/images/icons/html.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Ffilemanager%2Fbrowser%2Fmcpuk%2Fimages%2Ficons%2Fhtml.gif
plugins.test/fckeditor/www/editor/filemanager/browser/mcpuk/images/icons/jpg.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Ffilemanager%2Fbrowser%2Fmcpuk%2Fimages%2Ficons%2Fjpg.gif
plugins.test/fckeditor/www/editor/filemanager/browser/mcpuk/images/icons/js.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Ffilemanager%2Fbrowser%2Fmcpuk%2Fimages%2Ficons%2Fjs.gif
plugins.test/fckeditor/www/editor/filemanager/browser/mcpuk/images/icons/mdb.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Ffilemanager%2Fbrowser%2Fmcpuk%2Fimages%2Ficons%2Fmdb.gif
plugins.test/fckeditor/www/editor/filemanager/browser/mcpuk/images/icons/mp3.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Ffilemanager%2Fbrowser%2Fmcpuk%2Fimages%2Ficons%2Fmp3.gif
plugins.test/fckeditor/www/editor/filemanager/browser/mcpuk/images/icons/pdf.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Ffilemanager%2Fbrowser%2Fmcpuk%2Fimages%2Ficons%2Fpdf.gif
plugins.test/fckeditor/www/editor/filemanager/browser/mcpuk/images/icons/ppt.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Ffilemanager%2Fbrowser%2Fmcpuk%2Fimages%2Ficons%2Fppt.gif
plugins.test/fckeditor/www/editor/filemanager/browser/mcpuk/images/icons/rdp.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Ffilemanager%2Fbrowser%2Fmcpuk%2Fimages%2Ficons%2Frdp.gif
plugins.test/fckeditor/www/editor/filemanager/browser/mcpuk/images/icons/swf.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Ffilemanager%2Fbrowser%2Fmcpuk%2Fimages%2Ficons%2Fswf.gif
plugins.test/fckeditor/www/editor/filemanager/browser/mcpuk/images/icons/swt.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Ffilemanager%2Fbrowser%2Fmcpuk%2Fimages%2Ficons%2Fswt.gif
plugins.test/fckeditor/www/editor/filemanager/browser/mcpuk/images/icons/txt.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Ffilemanager%2Fbrowser%2Fmcpuk%2Fimages%2Ficons%2Ftxt.gif
plugins.test/fckeditor/www/editor/filemanager/browser/mcpuk/images/icons/vsd.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Ffilemanager%2Fbrowser%2Fmcpuk%2Fimages%2Ficons%2Fvsd.gif
plugins.test/fckeditor/www/editor/filemanager/browser/mcpuk/images/icons/xls.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Ffilemanager%2Fbrowser%2Fmcpuk%2Fimages%2Ficons%2Fxls.gif
plugins.test/fckeditor/www/editor/filemanager/browser/mcpuk/images/icons/xml.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Ffilemanager%2Fbrowser%2Fmcpuk%2Fimages%2Ficons%2Fxml.gif
plugins.test/fckeditor/www/editor/filemanager/browser/mcpuk/images/icons/zip.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Ffilemanager%2Fbrowser%2Fmcpuk%2Fimages%2Ficons%2Fzip.gif
plugins.test/fckeditor/www/editor/filemanager/browser/mcpuk/images/spacer.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Ffilemanager%2Fbrowser%2Fmcpuk%2Fimages%2Fspacer.gif
plugins.test/fckeditor/www/editor/filemanager/browser/mcpuk/images/toolbar	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Ffilemanager%2Fbrowser%2Fmcpuk%2Fimages%2Ftoolbar
plugins.test/fckeditor/www/editor/filemanager/browser/mcpuk/images/toolbar/Thumbs.db	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Ffilemanager%2Fbrowser%2Fmcpuk%2Fimages%2Ftoolbar%2FThumbs.db
plugins.test/fckeditor/www/editor/filemanager/browser/mcpuk/images/toolbar/close.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Ffilemanager%2Fbrowser%2Fmcpuk%2Fimages%2Ftoolbar%2Fclose.gif
plugins.test/fckeditor/www/editor/filemanager/browser/mcpuk/images/toolbar/crop.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Ffilemanager%2Fbrowser%2Fmcpuk%2Fimages%2Ftoolbar%2Fcrop.gif
plugins.test/fckeditor/www/editor/filemanager/browser/mcpuk/images/toolbar/flip.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Ffilemanager%2Fbrowser%2Fmcpuk%2Fimages%2Ftoolbar%2Fflip.gif
plugins.test/fckeditor/www/editor/filemanager/browser/mcpuk/images/toolbar/resize.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Ffilemanager%2Fbrowser%2Fmcpuk%2Fimages%2Ftoolbar%2Fresize.gif
plugins.test/fckeditor/www/editor/filemanager/browser/mcpuk/images/toolbar/rotate.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Ffilemanager%2Fbrowser%2Fmcpuk%2Fimages%2Ftoolbar%2Frotate.gif
plugins.test/fckeditor/www/editor/filemanager/browser/mcpuk/images/toolbar/save.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Ffilemanager%2Fbrowser%2Fmcpuk%2Fimages%2Ftoolbar%2Fsave.gif
plugins.test/fckeditor/www/editor/filemanager/browser/mcpuk/js	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Ffilemanager%2Fbrowser%2Fmcpuk%2Fjs
plugins.test/fckeditor/www/editor/filemanager/browser/mcpuk/js/EditorContent.js	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Ffilemanager%2Fbrowser%2Fmcpuk%2Fjs%2FEditorContent.js
plugins.test/fckeditor/www/editor/filemanager/browser/mcpuk/js/common.js	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Ffilemanager%2Fbrowser%2Fmcpuk%2Fjs%2Fcommon.js
plugins.test/fckeditor/www/editor/filemanager/browser/mcpuk/js/fckxml.js	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Ffilemanager%2Fbrowser%2Fmcpuk%2Fjs%2Ffckxml.js
plugins.test/fckeditor/www/editor/filemanager/browser/mcpuk/js/wz_jsgraphics.js	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Ffilemanager%2Fbrowser%2Fmcpuk%2Fjs%2Fwz_jsgraphics.js
plugins.test/fckeditor/www/editor/filemanager/upload	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Ffilemanager%2Fupload
plugins.test/fckeditor/www/editor/filemanager/upload/php	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Ffilemanager%2Fupload%2Fphp
plugins.test/fckeditor/www/editor/filemanager/upload/php/config.php	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Ffilemanager%2Fupload%2Fphp%2Fconfig.php
plugins.test/fckeditor/www/editor/filemanager/upload/php/upload.php	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Ffilemanager%2Fupload%2Fphp%2Fupload.php
plugins.test/fckeditor/www/editor/filemanager/upload/php/util.php	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Ffilemanager%2Fupload%2Fphp%2Futil.php
plugins.test/fckeditor/www/editor/filemanager/upload/test.html	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Ffilemanager%2Fupload%2Ftest.html
plugins.test/fckeditor/www/editor/images	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fimages
plugins.test/fckeditor/www/editor/images/Thumbs.db	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fimages%2FThumbs.db
plugins.test/fckeditor/www/editor/images/anchor.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fimages%2Fanchor.gif
plugins.test/fckeditor/www/editor/images/smiley	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fimages%2Fsmiley
plugins.test/fckeditor/www/editor/images/smiley/fun	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fimages%2Fsmiley%2Ffun
plugins.test/fckeditor/www/editor/images/smiley/fun/Thumbs.db	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fimages%2Fsmiley%2Ffun%2FThumbs.db
plugins.test/fckeditor/www/editor/images/smiley/fun/aiua.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fimages%2Fsmiley%2Ffun%2Faiua.gif
plugins.test/fckeditor/www/editor/images/smiley/fun/ak.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fimages%2Fsmiley%2Ffun%2Fak.gif
plugins.test/fckeditor/www/editor/images/smiley/fun/alien.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fimages%2Fsmiley%2Ffun%2Falien.gif
plugins.test/fckeditor/www/editor/images/smiley/fun/alien2.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fimages%2Fsmiley%2Ffun%2Falien2.gif
plugins.test/fckeditor/www/editor/images/smiley/fun/angry.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fimages%2Fsmiley%2Ffun%2Fangry.gif
plugins.test/fckeditor/www/editor/images/smiley/fun/angry1.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fimages%2Fsmiley%2Ffun%2Fangry1.gif
plugins.test/fckeditor/www/editor/images/smiley/fun/apophys.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fimages%2Fsmiley%2Ffun%2Fapophys.gif
plugins.test/fckeditor/www/editor/images/smiley/fun/assjani.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fimages%2Fsmiley%2Ffun%2Fassjani.gif
plugins.test/fckeditor/www/editor/images/smiley/fun/asthanos.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fimages%2Fsmiley%2Ffun%2Fasthanos.gif
plugins.test/fckeditor/www/editor/images/smiley/fun/bazuzeus.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fimages%2Fsmiley%2Ffun%2Fbazuzeus.gif
plugins.test/fckeditor/www/editor/images/smiley/fun/beaute.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fimages%2Fsmiley%2Ffun%2Fbeaute.gif
plugins.test/fckeditor/www/editor/images/smiley/fun/bigsmile.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fimages%2Fsmiley%2Ffun%2Fbigsmile.gif
plugins.test/fckeditor/www/editor/images/smiley/fun/blush.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fimages%2Fsmiley%2Ffun%2Fblush.gif
plugins.test/fckeditor/www/editor/images/smiley/fun/boid.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fimages%2Fsmiley%2Ffun%2Fboid.gif
plugins.test/fckeditor/www/editor/images/smiley/fun/bonk.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fimages%2Fsmiley%2Ffun%2Fbonk.gif
plugins.test/fckeditor/www/editor/images/smiley/fun/bored.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fimages%2Fsmiley%2Ffun%2Fbored.gif
plugins.test/fckeditor/www/editor/images/smiley/fun/borg.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fimages%2Fsmiley%2Ffun%2Fborg.gif
plugins.test/fckeditor/www/editor/images/smiley/fun/capo.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fimages%2Fsmiley%2Ffun%2Fcapo.gif
plugins.test/fckeditor/www/editor/images/smiley/fun/confused.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fimages%2Fsmiley%2Ffun%2Fconfused.gif
plugins.test/fckeditor/www/editor/images/smiley/fun/cool.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fimages%2Fsmiley%2Ffun%2Fcool.gif
plugins.test/fckeditor/www/editor/images/smiley/fun/crazy.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fimages%2Fsmiley%2Ffun%2Fcrazy.gif
plugins.test/fckeditor/www/editor/images/smiley/fun/cwm14.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fimages%2Fsmiley%2Ffun%2Fcwm14.gif
plugins.test/fckeditor/www/editor/images/smiley/fun/demis_roussos.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fimages%2Fsmiley%2Ffun%2Fdemis_roussos.gif
plugins.test/fckeditor/www/editor/images/smiley/fun/devil.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fimages%2Fsmiley%2Ffun%2Fdevil.gif
plugins.test/fckeditor/www/editor/images/smiley/fun/devil2.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fimages%2Fsmiley%2Ffun%2Fdevil2.gif
plugins.test/fckeditor/www/editor/images/smiley/fun/double0smile.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fimages%2Fsmiley%2Ffun%2Fdouble0smile.gif
plugins.test/fckeditor/www/editor/images/smiley/fun/eek3.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fimages%2Fsmiley%2Ffun%2Feek3.gif
plugins.test/fckeditor/www/editor/images/smiley/fun/eltaf.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fimages%2Fsmiley%2Ffun%2Feltaf.gif
plugins.test/fckeditor/www/editor/images/smiley/fun/gele.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fimages%2Fsmiley%2Ffun%2Fgele.gif
plugins.test/fckeditor/www/editor/images/smiley/fun/halm.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fimages%2Fsmiley%2Ffun%2Fhalm.gif
plugins.test/fckeditor/www/editor/images/smiley/fun/happy.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fimages%2Fsmiley%2Ffun%2Fhappy.gif
plugins.test/fckeditor/www/editor/images/smiley/fun/icon12.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fimages%2Fsmiley%2Ffun%2Ficon12.gif
plugins.test/fckeditor/www/editor/images/smiley/fun/icon23.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fimages%2Fsmiley%2Ffun%2Ficon23.gif
plugins.test/fckeditor/www/editor/images/smiley/fun/icon26.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fimages%2Fsmiley%2Ffun%2Ficon26.gif
plugins.test/fckeditor/www/editor/images/smiley/fun/icon_angel.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fimages%2Fsmiley%2Ffun%2Ficon_angel.gif
plugins.test/fckeditor/www/editor/images/smiley/fun/icon_bandit.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fimages%2Fsmiley%2Ffun%2Ficon_bandit.gif
plugins.test/fckeditor/www/editor/images/smiley/fun/icon_bravo.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fimages%2Fsmiley%2Ffun%2Ficon_bravo.gif
plugins.test/fckeditor/www/editor/images/smiley/fun/icon_clown.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fimages%2Fsmiley%2Ffun%2Ficon_clown.gif
plugins.test/fckeditor/www/editor/images/smiley/fun/jesors.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fimages%2Fsmiley%2Ffun%2Fjesors.gif
plugins.test/fckeditor/www/editor/images/smiley/fun/jesors1.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fimages%2Fsmiley%2Ffun%2Fjesors1.gif
plugins.test/fckeditor/www/editor/images/smiley/fun/lol3.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fimages%2Fsmiley%2Ffun%2Flol3.gif
plugins.test/fckeditor/www/editor/images/smiley/fun/love.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fimages%2Fsmiley%2Ffun%2Flove.gif
plugins.test/fckeditor/www/editor/images/smiley/fun/mad.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fimages%2Fsmiley%2Ffun%2Fmad.gif
plugins.test/fckeditor/www/editor/images/smiley/fun/megaphone.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fimages%2Fsmiley%2Ffun%2Fmegaphone.gif
plugins.test/fckeditor/www/editor/images/smiley/fun/mmm.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fimages%2Fsmiley%2Ffun%2Fmmm.gif
plugins.test/fckeditor/www/editor/images/smiley/fun/music.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fimages%2Fsmiley%2Ffun%2Fmusic.gif
plugins.test/fckeditor/www/editor/images/smiley/fun/notify.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fimages%2Fsmiley%2Ffun%2Fnotify.gif
plugins.test/fckeditor/www/editor/images/smiley/fun/nuts.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fimages%2Fsmiley%2Ffun%2Fnuts.gif
plugins.test/fckeditor/www/editor/images/smiley/fun/obanon.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fimages%2Fsmiley%2Ffun%2Fobanon.gif
plugins.test/fckeditor/www/editor/images/smiley/fun/ouaip.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fimages%2Fsmiley%2Ffun%2Fouaip.gif
plugins.test/fckeditor/www/editor/images/smiley/fun/pleure.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fimages%2Fsmiley%2Ffun%2Fpleure.gif
plugins.test/fckeditor/www/editor/images/smiley/fun/plugin.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fimages%2Fsmiley%2Ffun%2Fplugin.gif
plugins.test/fckeditor/www/editor/images/smiley/fun/question.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fimages%2Fsmiley%2Ffun%2Fquestion.gif
plugins.test/fckeditor/www/editor/images/smiley/fun/question2.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fimages%2Fsmiley%2Ffun%2Fquestion2.gif
plugins.test/fckeditor/www/editor/images/smiley/fun/rasta2.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fimages%2Fsmiley%2Ffun%2Frasta2.gif
plugins.test/fckeditor/www/editor/images/smiley/fun/rastapop.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fimages%2Fsmiley%2Ffun%2Frastapop.gif
plugins.test/fckeditor/www/editor/images/smiley/fun/rosebud.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fimages%2Fsmiley%2Ffun%2Frosebud.gif
plugins.test/fckeditor/www/editor/images/smiley/fun/sad.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fimages%2Fsmiley%2Ffun%2Fsad.gif
plugins.test/fckeditor/www/editor/images/smiley/fun/sad2.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fimages%2Fsmiley%2Ffun%2Fsad2.gif
plugins.test/fckeditor/www/editor/images/smiley/fun/shocked.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fimages%2Fsmiley%2Ffun%2Fshocked.gif
plugins.test/fckeditor/www/editor/images/smiley/fun/sick.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fimages%2Fsmiley%2Ffun%2Fsick.gif
plugins.test/fckeditor/www/editor/images/smiley/fun/sick2.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fimages%2Fsmiley%2Ffun%2Fsick2.gif
plugins.test/fckeditor/www/editor/images/smiley/fun/slaap.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fimages%2Fsmiley%2Ffun%2Fslaap.gif
plugins.test/fckeditor/www/editor/images/smiley/fun/sleep.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fimages%2Fsmiley%2Ffun%2Fsleep.gif
plugins.test/fckeditor/www/editor/images/smiley/fun/smile.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fimages%2Fsmiley%2Ffun%2Fsmile.gif
plugins.test/fckeditor/www/editor/images/smiley/fun/smiley_peur.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fimages%2Fsmiley%2Ffun%2Fsmiley_peur.gif
plugins.test/fckeditor/www/editor/images/smiley/fun/sors.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fimages%2Fsmiley%2Ffun%2Fsors.gif
plugins.test/fckeditor/www/editor/images/smiley/fun/sovxx.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fimages%2Fsmiley%2Ffun%2Fsovxx.gif
plugins.test/fckeditor/www/editor/images/smiley/fun/spamafote.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fimages%2Fsmiley%2Ffun%2Fspamafote.gif
plugins.test/fckeditor/www/editor/images/smiley/fun/tap67.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fimages%2Fsmiley%2Ffun%2Ftap67.gif
plugins.test/fckeditor/www/editor/images/smiley/fun/thumbdown.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fimages%2Fsmiley%2Ffun%2Fthumbdown.gif
plugins.test/fckeditor/www/editor/images/smiley/fun/thumbup.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fimages%2Fsmiley%2Ffun%2Fthumbup.gif
plugins.test/fckeditor/www/editor/images/smiley/fun/tigi.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fimages%2Fsmiley%2Ffun%2Ftigi.gif
plugins.test/fckeditor/www/editor/images/smiley/fun/toad666.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fimages%2Fsmiley%2Ffun%2Ftoad666.gif
plugins.test/fckeditor/www/editor/images/smiley/fun/tongue.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fimages%2Fsmiley%2Ffun%2Ftongue.gif
plugins.test/fckeditor/www/editor/images/smiley/fun/tuffgong.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fimages%2Fsmiley%2Ffun%2Ftuffgong.gif
plugins.test/fckeditor/www/editor/images/smiley/fun/urgeman.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fimages%2Fsmiley%2Ffun%2Furgeman.gif
plugins.test/fckeditor/www/editor/images/smiley/fun/vanadium.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fimages%2Fsmiley%2Ffun%2Fvanadium.gif
plugins.test/fckeditor/www/editor/images/smiley/fun/wink.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fimages%2Fsmiley%2Ffun%2Fwink.gif
plugins.test/fckeditor/www/editor/images/smiley/fun/worship.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fimages%2Fsmiley%2Ffun%2Fworship.gif
plugins.test/fckeditor/www/editor/images/smiley/fun/wouaf.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fimages%2Fsmiley%2Ffun%2Fwouaf.gif
plugins.test/fckeditor/www/editor/images/smiley/fun/wow.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fimages%2Fsmiley%2Ffun%2Fwow.gif
plugins.test/fckeditor/www/editor/images/smiley/fun/xp1700.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fimages%2Fsmiley%2Ffun%2Fxp1700.gif
plugins.test/fckeditor/www/editor/images/smiley/fun/yltype.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fimages%2Fsmiley%2Ffun%2Fyltype.gif
plugins.test/fckeditor/www/editor/images/smiley/fun/yopyopyop.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fimages%2Fsmiley%2Ffun%2Fyopyopyop.gif
plugins.test/fckeditor/www/editor/images/smiley/fun/youpi.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fimages%2Fsmiley%2Ffun%2Fyoupi.gif
plugins.test/fckeditor/www/editor/images/smiley/fun/zoor.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fimages%2Fsmiley%2Ffun%2Fzoor.gif
plugins.test/fckeditor/www/editor/images/smiley/msn	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fimages%2Fsmiley%2Fmsn
plugins.test/fckeditor/www/editor/images/smiley/msn/Thumbs.db	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fimages%2Fsmiley%2Fmsn%2FThumbs.db
plugins.test/fckeditor/www/editor/images/smiley/msn/angel_smile.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fimages%2Fsmiley%2Fmsn%2Fangel_smile.gif
plugins.test/fckeditor/www/editor/images/smiley/msn/angry_smile.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fimages%2Fsmiley%2Fmsn%2Fangry_smile.gif
plugins.test/fckeditor/www/editor/images/smiley/msn/broken_heart.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fimages%2Fsmiley%2Fmsn%2Fbroken_heart.gif
plugins.test/fckeditor/www/editor/images/smiley/msn/cake.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fimages%2Fsmiley%2Fmsn%2Fcake.gif
plugins.test/fckeditor/www/editor/images/smiley/msn/confused_smile.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fimages%2Fsmiley%2Fmsn%2Fconfused_smile.gif
plugins.test/fckeditor/www/editor/images/smiley/msn/cry_smile.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fimages%2Fsmiley%2Fmsn%2Fcry_smile.gif
plugins.test/fckeditor/www/editor/images/smiley/msn/devil_smile.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fimages%2Fsmiley%2Fmsn%2Fdevil_smile.gif
plugins.test/fckeditor/www/editor/images/smiley/msn/embaressed_smile.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fimages%2Fsmiley%2Fmsn%2Fembaressed_smile.gif
plugins.test/fckeditor/www/editor/images/smiley/msn/envelope.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fimages%2Fsmiley%2Fmsn%2Fenvelope.gif
plugins.test/fckeditor/www/editor/images/smiley/msn/heart.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fimages%2Fsmiley%2Fmsn%2Fheart.gif
plugins.test/fckeditor/www/editor/images/smiley/msn/kiss.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fimages%2Fsmiley%2Fmsn%2Fkiss.gif
plugins.test/fckeditor/www/editor/images/smiley/msn/lightbulb.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fimages%2Fsmiley%2Fmsn%2Flightbulb.gif
plugins.test/fckeditor/www/editor/images/smiley/msn/omg_smile.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fimages%2Fsmiley%2Fmsn%2Fomg_smile.gif
plugins.test/fckeditor/www/editor/images/smiley/msn/regular_smile.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fimages%2Fsmiley%2Fmsn%2Fregular_smile.gif
plugins.test/fckeditor/www/editor/images/smiley/msn/sad_smile.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fimages%2Fsmiley%2Fmsn%2Fsad_smile.gif
plugins.test/fckeditor/www/editor/images/smiley/msn/shades_smile.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fimages%2Fsmiley%2Fmsn%2Fshades_smile.gif
plugins.test/fckeditor/www/editor/images/smiley/msn/teeth_smile.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fimages%2Fsmiley%2Fmsn%2Fteeth_smile.gif
plugins.test/fckeditor/www/editor/images/smiley/msn/thumbs_down.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fimages%2Fsmiley%2Fmsn%2Fthumbs_down.gif
plugins.test/fckeditor/www/editor/images/smiley/msn/thumbs_up.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fimages%2Fsmiley%2Fmsn%2Fthumbs_up.gif
plugins.test/fckeditor/www/editor/images/smiley/msn/tounge_smile.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fimages%2Fsmiley%2Fmsn%2Ftounge_smile.gif
plugins.test/fckeditor/www/editor/images/smiley/msn/whatchutalkingabout_smile.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fimages%2Fsmiley%2Fmsn%2Fwhatchutalkingabout_smile.gif
plugins.test/fckeditor/www/editor/images/smiley/msn/wink_smile.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fimages%2Fsmiley%2Fmsn%2Fwink_smile.gif
plugins.test/fckeditor/www/editor/images/spacer.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fimages%2Fspacer.gif
plugins.test/fckeditor/www/editor/js	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fjs
plugins.test/fckeditor/www/editor/js/fck_startup.js	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fjs%2Ffck_startup.js
plugins.test/fckeditor/www/editor/js/fckeditorcode_gecko_1.js	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fjs%2Ffckeditorcode_gecko_1.js
plugins.test/fckeditor/www/editor/js/fckeditorcode_gecko_2.js	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fjs%2Ffckeditorcode_gecko_2.js
plugins.test/fckeditor/www/editor/js/fckeditorcode_ie_1.js	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fjs%2Ffckeditorcode_ie_1.js
plugins.test/fckeditor/www/editor/js/fckeditorcode_ie_2.js	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fjs%2Ffckeditorcode_ie_2.js
plugins.test/fckeditor/www/editor/lang	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Flang
plugins.test/fckeditor/www/editor/lang/_translationstatus.txt	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Flang%2F_translationstatus.txt
plugins.test/fckeditor/www/editor/lang/ar.js	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Flang%2Far.js
plugins.test/fckeditor/www/editor/lang/bg.js	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Flang%2Fbg.js
plugins.test/fckeditor/www/editor/lang/bs.js	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Flang%2Fbs.js
plugins.test/fckeditor/www/editor/lang/ca.js	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Flang%2Fca.js
plugins.test/fckeditor/www/editor/lang/cs.js	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Flang%2Fcs.js
plugins.test/fckeditor/www/editor/lang/da.js	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Flang%2Fda.js
plugins.test/fckeditor/www/editor/lang/de.js	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Flang%2Fde.js
plugins.test/fckeditor/www/editor/lang/el.js	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Flang%2Fel.js
plugins.test/fckeditor/www/editor/lang/en-au.js	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Flang%2Fen-au.js
plugins.test/fckeditor/www/editor/lang/en-uk.js	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Flang%2Fen-uk.js
plugins.test/fckeditor/www/editor/lang/en.js	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Flang%2Fen.js
plugins.test/fckeditor/www/editor/lang/eo.js	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Flang%2Feo.js
plugins.test/fckeditor/www/editor/lang/es.js	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Flang%2Fes.js
plugins.test/fckeditor/www/editor/lang/et.js	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Flang%2Fet.js
plugins.test/fckeditor/www/editor/lang/eu.js	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Flang%2Feu.js
plugins.test/fckeditor/www/editor/lang/fa.js	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Flang%2Ffa.js
plugins.test/fckeditor/www/editor/lang/fcklanguagemanager.js	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Flang%2Ffcklanguagemanager.js
plugins.test/fckeditor/www/editor/lang/fi.js	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Flang%2Ffi.js
plugins.test/fckeditor/www/editor/lang/fo.js	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Flang%2Ffo.js
plugins.test/fckeditor/www/editor/lang/fr.js	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Flang%2Ffr.js
plugins.test/fckeditor/www/editor/lang/gl.js	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Flang%2Fgl.js
plugins.test/fckeditor/www/editor/lang/he.js	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Flang%2Fhe.js
plugins.test/fckeditor/www/editor/lang/hr.js	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Flang%2Fhr.js
plugins.test/fckeditor/www/editor/lang/hu.js	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Flang%2Fhu.js
plugins.test/fckeditor/www/editor/lang/it.js	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Flang%2Fit.js
plugins.test/fckeditor/www/editor/lang/ja.js	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Flang%2Fja.js
plugins.test/fckeditor/www/editor/lang/ko.js	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Flang%2Fko.js
plugins.test/fckeditor/www/editor/lang/lt.js	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Flang%2Flt.js
plugins.test/fckeditor/www/editor/lang/mn.js	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Flang%2Fmn.js
plugins.test/fckeditor/www/editor/lang/ms.js	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Flang%2Fms.js
plugins.test/fckeditor/www/editor/lang/nl.js	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Flang%2Fnl.js
plugins.test/fckeditor/www/editor/lang/no.js	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Flang%2Fno.js
plugins.test/fckeditor/www/editor/lang/pl.js	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Flang%2Fpl.js
plugins.test/fckeditor/www/editor/lang/pt-br.js	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Flang%2Fpt-br.js
plugins.test/fckeditor/www/editor/lang/pt.js	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Flang%2Fpt.js
plugins.test/fckeditor/www/editor/lang/ro.js	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Flang%2Fro.js
plugins.test/fckeditor/www/editor/lang/ru.js	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Flang%2Fru.js
plugins.test/fckeditor/www/editor/lang/sk.js	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Flang%2Fsk.js
plugins.test/fckeditor/www/editor/lang/sl.js	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Flang%2Fsl.js
plugins.test/fckeditor/www/editor/lang/sr-latn.js	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Flang%2Fsr-latn.js
plugins.test/fckeditor/www/editor/lang/sr.js	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Flang%2Fsr.js
plugins.test/fckeditor/www/editor/lang/sv.js	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Flang%2Fsv.js
plugins.test/fckeditor/www/editor/lang/th.js	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Flang%2Fth.js
plugins.test/fckeditor/www/editor/lang/tr.js	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Flang%2Ftr.js
plugins.test/fckeditor/www/editor/lang/uk.js	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Flang%2Fuk.js
plugins.test/fckeditor/www/editor/lang/vi.js	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Flang%2Fvi.js
plugins.test/fckeditor/www/editor/lang/zh-cn.js	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Flang%2Fzh-cn.js
plugins.test/fckeditor/www/editor/lang/zh.js	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Flang%2Fzh.js
plugins.test/fckeditor/www/editor/plugins	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fplugins
plugins.test/fckeditor/www/editor/plugins/placeholder	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fplugins%2Fplaceholder
plugins.test/fckeditor/www/editor/plugins/placeholder/fck_placeholder.html	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fplugins%2Fplaceholder%2Ffck_placeholder.html
plugins.test/fckeditor/www/editor/plugins/placeholder/fckplugin.js	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fplugins%2Fplaceholder%2Ffckplugin.js
plugins.test/fckeditor/www/editor/plugins/placeholder/lang	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fplugins%2Fplaceholder%2Flang
plugins.test/fckeditor/www/editor/plugins/placeholder/lang/de.js	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fplugins%2Fplaceholder%2Flang%2Fde.js
plugins.test/fckeditor/www/editor/plugins/placeholder/lang/en.js	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fplugins%2Fplaceholder%2Flang%2Fen.js
plugins.test/fckeditor/www/editor/plugins/placeholder/lang/fr.js	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fplugins%2Fplaceholder%2Flang%2Ffr.js
plugins.test/fckeditor/www/editor/plugins/placeholder/lang/it.js	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fplugins%2Fplaceholder%2Flang%2Fit.js
plugins.test/fckeditor/www/editor/plugins/placeholder/placeholder.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fplugins%2Fplaceholder%2Fplaceholder.gif
plugins.test/fckeditor/www/editor/plugins/simplecommands	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fplugins%2Fsimplecommands
plugins.test/fckeditor/www/editor/plugins/simplecommands/fckplugin.js	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fplugins%2Fsimplecommands%2Ffckplugin.js
plugins.test/fckeditor/www/editor/plugins/tablecommands	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fplugins%2Ftablecommands
plugins.test/fckeditor/www/editor/plugins/tablecommands/fckplugin.js	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fplugins%2Ftablecommands%2Ffckplugin.js
plugins.test/fckeditor/www/editor/skins	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fskins
plugins.test/fckeditor/www/editor/skins/default	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fskins%2Fdefault
plugins.test/fckeditor/www/editor/skins/default/fck_contextmenu.css	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fskins%2Fdefault%2Ffck_contextmenu.css
plugins.test/fckeditor/www/editor/skins/default/fck_dialog.css	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fskins%2Fdefault%2Ffck_dialog.css
plugins.test/fckeditor/www/editor/skins/default/fck_editor.css	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fskins%2Fdefault%2Ffck_editor.css
plugins.test/fckeditor/www/editor/skins/default/images	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fskins%2Fdefault%2Fimages
plugins.test/fckeditor/www/editor/skins/default/images/Thumbs.db	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fskins%2Fdefault%2Fimages%2FThumbs.db
plugins.test/fckeditor/www/editor/skins/default/images/toolbar.arrowright.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fskins%2Fdefault%2Fimages%2Ftoolbar.arrowright.gif
plugins.test/fckeditor/www/editor/skins/default/images/toolbar.buttonarrow.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fskins%2Fdefault%2Fimages%2Ftoolbar.buttonarrow.gif
plugins.test/fckeditor/www/editor/skins/default/images/toolbar.collapse.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fskins%2Fdefault%2Fimages%2Ftoolbar.collapse.gif
plugins.test/fckeditor/www/editor/skins/default/images/toolbar.end.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fskins%2Fdefault%2Fimages%2Ftoolbar.end.gif
plugins.test/fckeditor/www/editor/skins/default/images/toolbar.expand.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fskins%2Fdefault%2Fimages%2Ftoolbar.expand.gif
plugins.test/fckeditor/www/editor/skins/default/images/toolbar.separator.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fskins%2Fdefault%2Fimages%2Ftoolbar.separator.gif
plugins.test/fckeditor/www/editor/skins/default/images/toolbar.start.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fskins%2Fdefault%2Fimages%2Ftoolbar.start.gif
plugins.test/fckeditor/www/editor/skins/default/toolbar	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fskins%2Fdefault%2Ftoolbar
plugins.test/fckeditor/www/editor/skins/default/toolbar/Thumbs.db	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fskins%2Fdefault%2Ftoolbar%2FThumbs.db
plugins.test/fckeditor/www/editor/skins/default/toolbar/about.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fskins%2Fdefault%2Ftoolbar%2Fabout.gif
plugins.test/fckeditor/www/editor/skins/default/toolbar/anchor.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fskins%2Fdefault%2Ftoolbar%2Fanchor.gif
plugins.test/fckeditor/www/editor/skins/default/toolbar/bgcolor.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fskins%2Fdefault%2Ftoolbar%2Fbgcolor.gif
plugins.test/fckeditor/www/editor/skins/default/toolbar/bold.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fskins%2Fdefault%2Ftoolbar%2Fbold.gif
plugins.test/fckeditor/www/editor/skins/default/toolbar/bulletedlist.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fskins%2Fdefault%2Ftoolbar%2Fbulletedlist.gif
plugins.test/fckeditor/www/editor/skins/default/toolbar/button.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fskins%2Fdefault%2Ftoolbar%2Fbutton.gif
plugins.test/fckeditor/www/editor/skins/default/toolbar/checkbox.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fskins%2Fdefault%2Ftoolbar%2Fcheckbox.gif
plugins.test/fckeditor/www/editor/skins/default/toolbar/copy.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fskins%2Fdefault%2Ftoolbar%2Fcopy.gif
plugins.test/fckeditor/www/editor/skins/default/toolbar/cut.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fskins%2Fdefault%2Ftoolbar%2Fcut.gif
plugins.test/fckeditor/www/editor/skins/default/toolbar/docprops.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fskins%2Fdefault%2Ftoolbar%2Fdocprops.gif
plugins.test/fckeditor/www/editor/skins/default/toolbar/find.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fskins%2Fdefault%2Ftoolbar%2Ffind.gif
plugins.test/fckeditor/www/editor/skins/default/toolbar/flash.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fskins%2Fdefault%2Ftoolbar%2Fflash.gif
plugins.test/fckeditor/www/editor/skins/default/toolbar/form.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fskins%2Fdefault%2Ftoolbar%2Fform.gif
plugins.test/fckeditor/www/editor/skins/default/toolbar/hiddenfield.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fskins%2Fdefault%2Ftoolbar%2Fhiddenfield.gif
plugins.test/fckeditor/www/editor/skins/default/toolbar/image.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fskins%2Fdefault%2Ftoolbar%2Fimage.gif
plugins.test/fckeditor/www/editor/skins/default/toolbar/imagebutton.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fskins%2Fdefault%2Ftoolbar%2Fimagebutton.gif
plugins.test/fckeditor/www/editor/skins/default/toolbar/indent.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fskins%2Fdefault%2Ftoolbar%2Findent.gif
plugins.test/fckeditor/www/editor/skins/default/toolbar/inserthorizontalrule.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fskins%2Fdefault%2Ftoolbar%2Finserthorizontalrule.gif
plugins.test/fckeditor/www/editor/skins/default/toolbar/insertorderedlist.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fskins%2Fdefault%2Ftoolbar%2Finsertorderedlist.gif
plugins.test/fckeditor/www/editor/skins/default/toolbar/insertunorderedlist.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fskins%2Fdefault%2Ftoolbar%2Finsertunorderedlist.gif
plugins.test/fckeditor/www/editor/skins/default/toolbar/italic.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fskins%2Fdefault%2Ftoolbar%2Fitalic.gif
plugins.test/fckeditor/www/editor/skins/default/toolbar/justifycenter.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fskins%2Fdefault%2Ftoolbar%2Fjustifycenter.gif
plugins.test/fckeditor/www/editor/skins/default/toolbar/justifyfull.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fskins%2Fdefault%2Ftoolbar%2Fjustifyfull.gif
plugins.test/fckeditor/www/editor/skins/default/toolbar/justifyleft.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fskins%2Fdefault%2Ftoolbar%2Fjustifyleft.gif
plugins.test/fckeditor/www/editor/skins/default/toolbar/justifyright.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fskins%2Fdefault%2Ftoolbar%2Fjustifyright.gif
plugins.test/fckeditor/www/editor/skins/default/toolbar/link.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fskins%2Fdefault%2Ftoolbar%2Flink.gif
plugins.test/fckeditor/www/editor/skins/default/toolbar/newpage.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fskins%2Fdefault%2Ftoolbar%2Fnewpage.gif
plugins.test/fckeditor/www/editor/skins/default/toolbar/numberedlist.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fskins%2Fdefault%2Ftoolbar%2Fnumberedlist.gif
plugins.test/fckeditor/www/editor/skins/default/toolbar/outdent.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fskins%2Fdefault%2Ftoolbar%2Foutdent.gif
plugins.test/fckeditor/www/editor/skins/default/toolbar/paste.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fskins%2Fdefault%2Ftoolbar%2Fpaste.gif
plugins.test/fckeditor/www/editor/skins/default/toolbar/pastetext.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fskins%2Fdefault%2Ftoolbar%2Fpastetext.gif
plugins.test/fckeditor/www/editor/skins/default/toolbar/pasteword.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fskins%2Fdefault%2Ftoolbar%2Fpasteword.gif
plugins.test/fckeditor/www/editor/skins/default/toolbar/preview.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fskins%2Fdefault%2Ftoolbar%2Fpreview.gif
plugins.test/fckeditor/www/editor/skins/default/toolbar/print.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fskins%2Fdefault%2Ftoolbar%2Fprint.gif
plugins.test/fckeditor/www/editor/skins/default/toolbar/radio.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fskins%2Fdefault%2Ftoolbar%2Fradio.gif
plugins.test/fckeditor/www/editor/skins/default/toolbar/redo.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fskins%2Fdefault%2Ftoolbar%2Fredo.gif
plugins.test/fckeditor/www/editor/skins/default/toolbar/removeformat.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fskins%2Fdefault%2Ftoolbar%2Fremoveformat.gif
plugins.test/fckeditor/www/editor/skins/default/toolbar/replace.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fskins%2Fdefault%2Ftoolbar%2Freplace.gif
plugins.test/fckeditor/www/editor/skins/default/toolbar/save.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fskins%2Fdefault%2Ftoolbar%2Fsave.gif
plugins.test/fckeditor/www/editor/skins/default/toolbar/select.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fskins%2Fdefault%2Ftoolbar%2Fselect.gif
plugins.test/fckeditor/www/editor/skins/default/toolbar/selectall.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fskins%2Fdefault%2Ftoolbar%2Fselectall.gif
plugins.test/fckeditor/www/editor/skins/default/toolbar/showdetails.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fskins%2Fdefault%2Ftoolbar%2Fshowdetails.gif
plugins.test/fckeditor/www/editor/skins/default/toolbar/showtableborders.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fskins%2Fdefault%2Ftoolbar%2Fshowtableborders.gif
plugins.test/fckeditor/www/editor/skins/default/toolbar/smiley.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fskins%2Fdefault%2Ftoolbar%2Fsmiley.gif
plugins.test/fckeditor/www/editor/skins/default/toolbar/source.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fskins%2Fdefault%2Ftoolbar%2Fsource.gif
plugins.test/fckeditor/www/editor/skins/default/toolbar/specialchar.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fskins%2Fdefault%2Ftoolbar%2Fspecialchar.gif
plugins.test/fckeditor/www/editor/skins/default/toolbar/spellcheck.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fskins%2Fdefault%2Ftoolbar%2Fspellcheck.gif
plugins.test/fckeditor/www/editor/skins/default/toolbar/strikethrough.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fskins%2Fdefault%2Ftoolbar%2Fstrikethrough.gif
plugins.test/fckeditor/www/editor/skins/default/toolbar/subscript.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fskins%2Fdefault%2Ftoolbar%2Fsubscript.gif
plugins.test/fckeditor/www/editor/skins/default/toolbar/superscript.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fskins%2Fdefault%2Ftoolbar%2Fsuperscript.gif
plugins.test/fckeditor/www/editor/skins/default/toolbar/table.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fskins%2Fdefault%2Ftoolbar%2Ftable.gif
plugins.test/fckeditor/www/editor/skins/default/toolbar/tablecell.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fskins%2Fdefault%2Ftoolbar%2Ftablecell.gif
plugins.test/fckeditor/www/editor/skins/default/toolbar/tabledeletecells.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fskins%2Fdefault%2Ftoolbar%2Ftabledeletecells.gif
plugins.test/fckeditor/www/editor/skins/default/toolbar/tabledeletecolumns.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fskins%2Fdefault%2Ftoolbar%2Ftabledeletecolumns.gif
plugins.test/fckeditor/www/editor/skins/default/toolbar/tabledeleterows.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fskins%2Fdefault%2Ftoolbar%2Ftabledeleterows.gif
plugins.test/fckeditor/www/editor/skins/default/toolbar/tableinsertcell.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fskins%2Fdefault%2Ftoolbar%2Ftableinsertcell.gif
plugins.test/fckeditor/www/editor/skins/default/toolbar/tableinsertcolumn.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fskins%2Fdefault%2Ftoolbar%2Ftableinsertcolumn.gif
plugins.test/fckeditor/www/editor/skins/default/toolbar/tableinsertrow.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fskins%2Fdefault%2Ftoolbar%2Ftableinsertrow.gif
plugins.test/fckeditor/www/editor/skins/default/toolbar/tablemergecells.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fskins%2Fdefault%2Ftoolbar%2Ftablemergecells.gif
plugins.test/fckeditor/www/editor/skins/default/toolbar/tablesplitcell.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fskins%2Fdefault%2Ftoolbar%2Ftablesplitcell.gif
plugins.test/fckeditor/www/editor/skins/default/toolbar/templates.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fskins%2Fdefault%2Ftoolbar%2Ftemplates.gif
plugins.test/fckeditor/www/editor/skins/default/toolbar/textarea.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fskins%2Fdefault%2Ftoolbar%2Ftextarea.gif
plugins.test/fckeditor/www/editor/skins/default/toolbar/textcolor.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fskins%2Fdefault%2Ftoolbar%2Ftextcolor.gif
plugins.test/fckeditor/www/editor/skins/default/toolbar/textfield.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fskins%2Fdefault%2Ftoolbar%2Ftextfield.gif
plugins.test/fckeditor/www/editor/skins/default/toolbar/underline.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fskins%2Fdefault%2Ftoolbar%2Funderline.gif
plugins.test/fckeditor/www/editor/skins/default/toolbar/undo.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fskins%2Fdefault%2Ftoolbar%2Fundo.gif
plugins.test/fckeditor/www/editor/skins/default/toolbar/universalkey.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fskins%2Fdefault%2Ftoolbar%2Funiversalkey.gif
plugins.test/fckeditor/www/editor/skins/default/toolbar/unlink.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fskins%2Fdefault%2Ftoolbar%2Funlink.gif
plugins.test/fckeditor/www/editor/skins/default/toolbar/unorderedlist.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fskins%2Fdefault%2Ftoolbar%2Funorderedlist.gif
plugins.test/fckeditor/www/editor/skins/office2003	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fskins%2Foffice2003
plugins.test/fckeditor/www/editor/skins/office2003/fck_contextmenu.css	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fskins%2Foffice2003%2Ffck_contextmenu.css
plugins.test/fckeditor/www/editor/skins/office2003/fck_dialog.css	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fskins%2Foffice2003%2Ffck_dialog.css
plugins.test/fckeditor/www/editor/skins/office2003/fck_editor.css	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fskins%2Foffice2003%2Ffck_editor.css
plugins.test/fckeditor/www/editor/skins/office2003/images	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fskins%2Foffice2003%2Fimages
plugins.test/fckeditor/www/editor/skins/office2003/images/Thumbs.db	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fskins%2Foffice2003%2Fimages%2FThumbs.db
plugins.test/fckeditor/www/editor/skins/office2003/images/toolbar.arrowright.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fskins%2Foffice2003%2Fimages%2Ftoolbar.arrowright.gif
plugins.test/fckeditor/www/editor/skins/office2003/images/toolbar.bg.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fskins%2Foffice2003%2Fimages%2Ftoolbar.bg.gif
plugins.test/fckeditor/www/editor/skins/office2003/images/toolbar.buttonarrow.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fskins%2Foffice2003%2Fimages%2Ftoolbar.buttonarrow.gif
plugins.test/fckeditor/www/editor/skins/office2003/images/toolbar.collapse.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fskins%2Foffice2003%2Fimages%2Ftoolbar.collapse.gif
plugins.test/fckeditor/www/editor/skins/office2003/images/toolbar.end.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fskins%2Foffice2003%2Fimages%2Ftoolbar.end.gif
plugins.test/fckeditor/www/editor/skins/office2003/images/toolbar.expand.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fskins%2Foffice2003%2Fimages%2Ftoolbar.expand.gif
plugins.test/fckeditor/www/editor/skins/office2003/images/toolbar.separator.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fskins%2Foffice2003%2Fimages%2Ftoolbar.separator.gif
plugins.test/fckeditor/www/editor/skins/office2003/images/toolbar.start.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fskins%2Foffice2003%2Fimages%2Ftoolbar.start.gif
plugins.test/fckeditor/www/editor/skins/office2003/toolbar	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fskins%2Foffice2003%2Ftoolbar
plugins.test/fckeditor/www/editor/skins/office2003/toolbar/about.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fskins%2Foffice2003%2Ftoolbar%2Fabout.gif
plugins.test/fckeditor/www/editor/skins/office2003/toolbar/anchor.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fskins%2Foffice2003%2Ftoolbar%2Fanchor.gif
plugins.test/fckeditor/www/editor/skins/office2003/toolbar/bgcolor.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fskins%2Foffice2003%2Ftoolbar%2Fbgcolor.gif
plugins.test/fckeditor/www/editor/skins/office2003/toolbar/bold.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fskins%2Foffice2003%2Ftoolbar%2Fbold.gif
plugins.test/fckeditor/www/editor/skins/office2003/toolbar/bulletedlist.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fskins%2Foffice2003%2Ftoolbar%2Fbulletedlist.gif
plugins.test/fckeditor/www/editor/skins/office2003/toolbar/button.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fskins%2Foffice2003%2Ftoolbar%2Fbutton.gif
plugins.test/fckeditor/www/editor/skins/office2003/toolbar/checkbox.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fskins%2Foffice2003%2Ftoolbar%2Fcheckbox.gif
plugins.test/fckeditor/www/editor/skins/office2003/toolbar/copy.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fskins%2Foffice2003%2Ftoolbar%2Fcopy.gif
plugins.test/fckeditor/www/editor/skins/office2003/toolbar/cut.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fskins%2Foffice2003%2Ftoolbar%2Fcut.gif
plugins.test/fckeditor/www/editor/skins/office2003/toolbar/docprops.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fskins%2Foffice2003%2Ftoolbar%2Fdocprops.gif
plugins.test/fckeditor/www/editor/skins/office2003/toolbar/find.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fskins%2Foffice2003%2Ftoolbar%2Ffind.gif
plugins.test/fckeditor/www/editor/skins/office2003/toolbar/flash.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fskins%2Foffice2003%2Ftoolbar%2Fflash.gif
plugins.test/fckeditor/www/editor/skins/office2003/toolbar/fontstyleadv.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fskins%2Foffice2003%2Ftoolbar%2Ffontstyleadv.gif
plugins.test/fckeditor/www/editor/skins/office2003/toolbar/form.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fskins%2Foffice2003%2Ftoolbar%2Fform.gif
plugins.test/fckeditor/www/editor/skins/office2003/toolbar/hidden.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fskins%2Foffice2003%2Ftoolbar%2Fhidden.gif
plugins.test/fckeditor/www/editor/skins/office2003/toolbar/hiddenfield.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fskins%2Foffice2003%2Ftoolbar%2Fhiddenfield.gif
plugins.test/fckeditor/www/editor/skins/office2003/toolbar/image.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fskins%2Foffice2003%2Ftoolbar%2Fimage.gif
plugins.test/fckeditor/www/editor/skins/office2003/toolbar/imagebutton.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fskins%2Foffice2003%2Ftoolbar%2Fimagebutton.gif
plugins.test/fckeditor/www/editor/skins/office2003/toolbar/indent.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fskins%2Foffice2003%2Ftoolbar%2Findent.gif
plugins.test/fckeditor/www/editor/skins/office2003/toolbar/input.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fskins%2Foffice2003%2Ftoolbar%2Finput.gif
plugins.test/fckeditor/www/editor/skins/office2003/toolbar/inserthorizontalrule.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fskins%2Foffice2003%2Ftoolbar%2Finserthorizontalrule.gif
plugins.test/fckeditor/www/editor/skins/office2003/toolbar/insertorderedlist.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fskins%2Foffice2003%2Ftoolbar%2Finsertorderedlist.gif
plugins.test/fckeditor/www/editor/skins/office2003/toolbar/insertunorderedlist.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fskins%2Foffice2003%2Ftoolbar%2Finsertunorderedlist.gif
plugins.test/fckeditor/www/editor/skins/office2003/toolbar/italic.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fskins%2Foffice2003%2Ftoolbar%2Fitalic.gif
plugins.test/fckeditor/www/editor/skins/office2003/toolbar/justifycenter.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fskins%2Foffice2003%2Ftoolbar%2Fjustifycenter.gif
plugins.test/fckeditor/www/editor/skins/office2003/toolbar/justifyfull.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fskins%2Foffice2003%2Ftoolbar%2Fjustifyfull.gif
plugins.test/fckeditor/www/editor/skins/office2003/toolbar/justifyleft.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fskins%2Foffice2003%2Ftoolbar%2Fjustifyleft.gif
plugins.test/fckeditor/www/editor/skins/office2003/toolbar/justifyright.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fskins%2Foffice2003%2Ftoolbar%2Fjustifyright.gif
plugins.test/fckeditor/www/editor/skins/office2003/toolbar/link.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fskins%2Foffice2003%2Ftoolbar%2Flink.gif
plugins.test/fckeditor/www/editor/skins/office2003/toolbar/mail.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fskins%2Foffice2003%2Ftoolbar%2Fmail.gif
plugins.test/fckeditor/www/editor/skins/office2003/toolbar/new.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fskins%2Foffice2003%2Ftoolbar%2Fnew.gif
plugins.test/fckeditor/www/editor/skins/office2003/toolbar/newpage.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fskins%2Foffice2003%2Ftoolbar%2Fnewpage.gif
plugins.test/fckeditor/www/editor/skins/office2003/toolbar/numberedlist.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fskins%2Foffice2003%2Ftoolbar%2Fnumberedlist.gif
plugins.test/fckeditor/www/editor/skins/office2003/toolbar/open.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fskins%2Foffice2003%2Ftoolbar%2Fopen.gif
plugins.test/fckeditor/www/editor/skins/office2003/toolbar/outdent.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fskins%2Foffice2003%2Ftoolbar%2Foutdent.gif
plugins.test/fckeditor/www/editor/skins/office2003/toolbar/paste.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fskins%2Foffice2003%2Ftoolbar%2Fpaste.gif
plugins.test/fckeditor/www/editor/skins/office2003/toolbar/pastetext.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fskins%2Foffice2003%2Ftoolbar%2Fpastetext.gif
plugins.test/fckeditor/www/editor/skins/office2003/toolbar/pasteword.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fskins%2Foffice2003%2Ftoolbar%2Fpasteword.gif
plugins.test/fckeditor/www/editor/skins/office2003/toolbar/preview.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fskins%2Foffice2003%2Ftoolbar%2Fpreview.gif
plugins.test/fckeditor/www/editor/skins/office2003/toolbar/print.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fskins%2Foffice2003%2Ftoolbar%2Fprint.gif
plugins.test/fckeditor/www/editor/skins/office2003/toolbar/radio.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fskins%2Foffice2003%2Ftoolbar%2Fradio.gif
plugins.test/fckeditor/www/editor/skins/office2003/toolbar/redo.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fskins%2Foffice2003%2Ftoolbar%2Fredo.gif
plugins.test/fckeditor/www/editor/skins/office2003/toolbar/removeformat.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fskins%2Foffice2003%2Ftoolbar%2Fremoveformat.gif
plugins.test/fckeditor/www/editor/skins/office2003/toolbar/replace.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fskins%2Foffice2003%2Ftoolbar%2Freplace.gif
plugins.test/fckeditor/www/editor/skins/office2003/toolbar/save.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fskins%2Foffice2003%2Ftoolbar%2Fsave.gif
plugins.test/fckeditor/www/editor/skins/office2003/toolbar/select.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fskins%2Foffice2003%2Ftoolbar%2Fselect.gif
plugins.test/fckeditor/www/editor/skins/office2003/toolbar/selectall.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fskins%2Foffice2003%2Ftoolbar%2Fselectall.gif
plugins.test/fckeditor/www/editor/skins/office2003/toolbar/showdetails.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fskins%2Foffice2003%2Ftoolbar%2Fshowdetails.gif
plugins.test/fckeditor/www/editor/skins/office2003/toolbar/showtableborders.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fskins%2Foffice2003%2Ftoolbar%2Fshowtableborders.gif
plugins.test/fckeditor/www/editor/skins/office2003/toolbar/smiley.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fskins%2Foffice2003%2Ftoolbar%2Fsmiley.gif
plugins.test/fckeditor/www/editor/skins/office2003/toolbar/source.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fskins%2Foffice2003%2Ftoolbar%2Fsource.gif
plugins.test/fckeditor/www/editor/skins/office2003/toolbar/specialchar.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fskins%2Foffice2003%2Ftoolbar%2Fspecialchar.gif
plugins.test/fckeditor/www/editor/skins/office2003/toolbar/spellcheck.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fskins%2Foffice2003%2Ftoolbar%2Fspellcheck.gif
plugins.test/fckeditor/www/editor/skins/office2003/toolbar/strikethrough.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fskins%2Foffice2003%2Ftoolbar%2Fstrikethrough.gif
plugins.test/fckeditor/www/editor/skins/office2003/toolbar/subscript.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fskins%2Foffice2003%2Ftoolbar%2Fsubscript.gif
plugins.test/fckeditor/www/editor/skins/office2003/toolbar/superscript.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fskins%2Foffice2003%2Ftoolbar%2Fsuperscript.gif
plugins.test/fckeditor/www/editor/skins/office2003/toolbar/table.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fskins%2Foffice2003%2Ftoolbar%2Ftable.gif
plugins.test/fckeditor/www/editor/skins/office2003/toolbar/tablecell.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fskins%2Foffice2003%2Ftoolbar%2Ftablecell.gif
plugins.test/fckeditor/www/editor/skins/office2003/toolbar/tabledeletecells.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fskins%2Foffice2003%2Ftoolbar%2Ftabledeletecells.gif
plugins.test/fckeditor/www/editor/skins/office2003/toolbar/tabledeletecolumns.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fskins%2Foffice2003%2Ftoolbar%2Ftabledeletecolumns.gif
plugins.test/fckeditor/www/editor/skins/office2003/toolbar/tabledeleterows.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fskins%2Foffice2003%2Ftoolbar%2Ftabledeleterows.gif
plugins.test/fckeditor/www/editor/skins/office2003/toolbar/tableinsertcell.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fskins%2Foffice2003%2Ftoolbar%2Ftableinsertcell.gif
plugins.test/fckeditor/www/editor/skins/office2003/toolbar/tableinsertcolumn.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fskins%2Foffice2003%2Ftoolbar%2Ftableinsertcolumn.gif
plugins.test/fckeditor/www/editor/skins/office2003/toolbar/tableinsertrow.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fskins%2Foffice2003%2Ftoolbar%2Ftableinsertrow.gif
plugins.test/fckeditor/www/editor/skins/office2003/toolbar/tablemergecells.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fskins%2Foffice2003%2Ftoolbar%2Ftablemergecells.gif
plugins.test/fckeditor/www/editor/skins/office2003/toolbar/tablesplitcell.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fskins%2Foffice2003%2Ftoolbar%2Ftablesplitcell.gif
plugins.test/fckeditor/www/editor/skins/office2003/toolbar/templates.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fskins%2Foffice2003%2Ftoolbar%2Ftemplates.gif
plugins.test/fckeditor/www/editor/skins/office2003/toolbar/textarea.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fskins%2Foffice2003%2Ftoolbar%2Ftextarea.gif
plugins.test/fckeditor/www/editor/skins/office2003/toolbar/textcolor.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fskins%2Foffice2003%2Ftoolbar%2Ftextcolor.gif
plugins.test/fckeditor/www/editor/skins/office2003/toolbar/textfield.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fskins%2Foffice2003%2Ftoolbar%2Ftextfield.gif
plugins.test/fckeditor/www/editor/skins/office2003/toolbar/underline.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fskins%2Foffice2003%2Ftoolbar%2Funderline.gif
plugins.test/fckeditor/www/editor/skins/office2003/toolbar/undo.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fskins%2Foffice2003%2Ftoolbar%2Fundo.gif
plugins.test/fckeditor/www/editor/skins/office2003/toolbar/universalkey.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fskins%2Foffice2003%2Ftoolbar%2Funiversalkey.gif
plugins.test/fckeditor/www/editor/skins/office2003/toolbar/unlink.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fskins%2Foffice2003%2Ftoolbar%2Funlink.gif
plugins.test/fckeditor/www/editor/skins/office2003/toolbar/unorderedlist.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fskins%2Foffice2003%2Ftoolbar%2Funorderedlist.gif
plugins.test/fckeditor/www/editor/skins/silver	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fskins%2Fsilver
plugins.test/fckeditor/www/editor/skins/silver/fck_contextmenu.css	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fskins%2Fsilver%2Ffck_contextmenu.css
plugins.test/fckeditor/www/editor/skins/silver/fck_dialog.css	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fskins%2Fsilver%2Ffck_dialog.css
plugins.test/fckeditor/www/editor/skins/silver/fck_editor.css	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fskins%2Fsilver%2Ffck_editor.css
plugins.test/fckeditor/www/editor/skins/silver/images	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fskins%2Fsilver%2Fimages
plugins.test/fckeditor/www/editor/skins/silver/images/Thumbs.db	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fskins%2Fsilver%2Fimages%2FThumbs.db
plugins.test/fckeditor/www/editor/skins/silver/images/toolbar.arrowright.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fskins%2Fsilver%2Fimages%2Ftoolbar.arrowright.gif
plugins.test/fckeditor/www/editor/skins/silver/images/toolbar.buttonarrow.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fskins%2Fsilver%2Fimages%2Ftoolbar.buttonarrow.gif
plugins.test/fckeditor/www/editor/skins/silver/images/toolbar.buttonbg.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fskins%2Fsilver%2Fimages%2Ftoolbar.buttonbg.gif
plugins.test/fckeditor/www/editor/skins/silver/images/toolbar.collapse.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fskins%2Fsilver%2Fimages%2Ftoolbar.collapse.gif
plugins.test/fckeditor/www/editor/skins/silver/images/toolbar.end.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fskins%2Fsilver%2Fimages%2Ftoolbar.end.gif
plugins.test/fckeditor/www/editor/skins/silver/images/toolbar.expand.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fskins%2Fsilver%2Fimages%2Ftoolbar.expand.gif
plugins.test/fckeditor/www/editor/skins/silver/images/toolbar.separator.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fskins%2Fsilver%2Fimages%2Ftoolbar.separator.gif
plugins.test/fckeditor/www/editor/skins/silver/images/toolbar.start.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fskins%2Fsilver%2Fimages%2Ftoolbar.start.gif
plugins.test/fckeditor/www/editor/skins/silver/toolbar	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fskins%2Fsilver%2Ftoolbar
plugins.test/fckeditor/www/editor/skins/silver/toolbar/about.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fskins%2Fsilver%2Ftoolbar%2Fabout.gif
plugins.test/fckeditor/www/editor/skins/silver/toolbar/anchor.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fskins%2Fsilver%2Ftoolbar%2Fanchor.gif
plugins.test/fckeditor/www/editor/skins/silver/toolbar/bgcolor.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fskins%2Fsilver%2Ftoolbar%2Fbgcolor.gif
plugins.test/fckeditor/www/editor/skins/silver/toolbar/bold.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fskins%2Fsilver%2Ftoolbar%2Fbold.gif
plugins.test/fckeditor/www/editor/skins/silver/toolbar/bulletedlist.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fskins%2Fsilver%2Ftoolbar%2Fbulletedlist.gif
plugins.test/fckeditor/www/editor/skins/silver/toolbar/button.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fskins%2Fsilver%2Ftoolbar%2Fbutton.gif
plugins.test/fckeditor/www/editor/skins/silver/toolbar/checkbox.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fskins%2Fsilver%2Ftoolbar%2Fcheckbox.gif
plugins.test/fckeditor/www/editor/skins/silver/toolbar/copy.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fskins%2Fsilver%2Ftoolbar%2Fcopy.gif
plugins.test/fckeditor/www/editor/skins/silver/toolbar/cut.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fskins%2Fsilver%2Ftoolbar%2Fcut.gif
plugins.test/fckeditor/www/editor/skins/silver/toolbar/docprops.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fskins%2Fsilver%2Ftoolbar%2Fdocprops.gif
plugins.test/fckeditor/www/editor/skins/silver/toolbar/find.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fskins%2Fsilver%2Ftoolbar%2Ffind.gif
plugins.test/fckeditor/www/editor/skins/silver/toolbar/flash.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fskins%2Fsilver%2Ftoolbar%2Fflash.gif
plugins.test/fckeditor/www/editor/skins/silver/toolbar/form.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fskins%2Fsilver%2Ftoolbar%2Fform.gif
plugins.test/fckeditor/www/editor/skins/silver/toolbar/hiddenfield.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fskins%2Fsilver%2Ftoolbar%2Fhiddenfield.gif
plugins.test/fckeditor/www/editor/skins/silver/toolbar/image.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fskins%2Fsilver%2Ftoolbar%2Fimage.gif
plugins.test/fckeditor/www/editor/skins/silver/toolbar/imagebutton.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fskins%2Fsilver%2Ftoolbar%2Fimagebutton.gif
plugins.test/fckeditor/www/editor/skins/silver/toolbar/indent.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fskins%2Fsilver%2Ftoolbar%2Findent.gif
plugins.test/fckeditor/www/editor/skins/silver/toolbar/inserthorizontalrule.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fskins%2Fsilver%2Ftoolbar%2Finserthorizontalrule.gif
plugins.test/fckeditor/www/editor/skins/silver/toolbar/insertorderedlist.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fskins%2Fsilver%2Ftoolbar%2Finsertorderedlist.gif
plugins.test/fckeditor/www/editor/skins/silver/toolbar/insertunorderedlist.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fskins%2Fsilver%2Ftoolbar%2Finsertunorderedlist.gif
plugins.test/fckeditor/www/editor/skins/silver/toolbar/italic.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fskins%2Fsilver%2Ftoolbar%2Fitalic.gif
plugins.test/fckeditor/www/editor/skins/silver/toolbar/justifycenter.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fskins%2Fsilver%2Ftoolbar%2Fjustifycenter.gif
plugins.test/fckeditor/www/editor/skins/silver/toolbar/justifyfull.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fskins%2Fsilver%2Ftoolbar%2Fjustifyfull.gif
plugins.test/fckeditor/www/editor/skins/silver/toolbar/justifyleft.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fskins%2Fsilver%2Ftoolbar%2Fjustifyleft.gif
plugins.test/fckeditor/www/editor/skins/silver/toolbar/justifyright.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fskins%2Fsilver%2Ftoolbar%2Fjustifyright.gif
plugins.test/fckeditor/www/editor/skins/silver/toolbar/link.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fskins%2Fsilver%2Ftoolbar%2Flink.gif
plugins.test/fckeditor/www/editor/skins/silver/toolbar/newpage.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fskins%2Fsilver%2Ftoolbar%2Fnewpage.gif
plugins.test/fckeditor/www/editor/skins/silver/toolbar/numberedlist.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fskins%2Fsilver%2Ftoolbar%2Fnumberedlist.gif
plugins.test/fckeditor/www/editor/skins/silver/toolbar/outdent.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fskins%2Fsilver%2Ftoolbar%2Foutdent.gif
plugins.test/fckeditor/www/editor/skins/silver/toolbar/paste.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fskins%2Fsilver%2Ftoolbar%2Fpaste.gif
plugins.test/fckeditor/www/editor/skins/silver/toolbar/pastetext.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fskins%2Fsilver%2Ftoolbar%2Fpastetext.gif
plugins.test/fckeditor/www/editor/skins/silver/toolbar/pasteword.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fskins%2Fsilver%2Ftoolbar%2Fpasteword.gif
plugins.test/fckeditor/www/editor/skins/silver/toolbar/preview.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fskins%2Fsilver%2Ftoolbar%2Fpreview.gif
plugins.test/fckeditor/www/editor/skins/silver/toolbar/print.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fskins%2Fsilver%2Ftoolbar%2Fprint.gif
plugins.test/fckeditor/www/editor/skins/silver/toolbar/radio.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fskins%2Fsilver%2Ftoolbar%2Fradio.gif
plugins.test/fckeditor/www/editor/skins/silver/toolbar/redo.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fskins%2Fsilver%2Ftoolbar%2Fredo.gif
plugins.test/fckeditor/www/editor/skins/silver/toolbar/removeformat.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fskins%2Fsilver%2Ftoolbar%2Fremoveformat.gif
plugins.test/fckeditor/www/editor/skins/silver/toolbar/replace.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fskins%2Fsilver%2Ftoolbar%2Freplace.gif
plugins.test/fckeditor/www/editor/skins/silver/toolbar/save.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fskins%2Fsilver%2Ftoolbar%2Fsave.gif
plugins.test/fckeditor/www/editor/skins/silver/toolbar/select.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fskins%2Fsilver%2Ftoolbar%2Fselect.gif
plugins.test/fckeditor/www/editor/skins/silver/toolbar/selectall.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fskins%2Fsilver%2Ftoolbar%2Fselectall.gif
plugins.test/fckeditor/www/editor/skins/silver/toolbar/showdetails.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fskins%2Fsilver%2Ftoolbar%2Fshowdetails.gif
plugins.test/fckeditor/www/editor/skins/silver/toolbar/showtableborders.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fskins%2Fsilver%2Ftoolbar%2Fshowtableborders.gif
plugins.test/fckeditor/www/editor/skins/silver/toolbar/smiley.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fskins%2Fsilver%2Ftoolbar%2Fsmiley.gif
plugins.test/fckeditor/www/editor/skins/silver/toolbar/source.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fskins%2Fsilver%2Ftoolbar%2Fsource.gif
plugins.test/fckeditor/www/editor/skins/silver/toolbar/specialchar.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fskins%2Fsilver%2Ftoolbar%2Fspecialchar.gif
plugins.test/fckeditor/www/editor/skins/silver/toolbar/spellcheck.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fskins%2Fsilver%2Ftoolbar%2Fspellcheck.gif
plugins.test/fckeditor/www/editor/skins/silver/toolbar/strikethrough.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fskins%2Fsilver%2Ftoolbar%2Fstrikethrough.gif
plugins.test/fckeditor/www/editor/skins/silver/toolbar/subscript.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fskins%2Fsilver%2Ftoolbar%2Fsubscript.gif
plugins.test/fckeditor/www/editor/skins/silver/toolbar/superscript.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fskins%2Fsilver%2Ftoolbar%2Fsuperscript.gif
plugins.test/fckeditor/www/editor/skins/silver/toolbar/table.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fskins%2Fsilver%2Ftoolbar%2Ftable.gif
plugins.test/fckeditor/www/editor/skins/silver/toolbar/tablecell.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fskins%2Fsilver%2Ftoolbar%2Ftablecell.gif
plugins.test/fckeditor/www/editor/skins/silver/toolbar/tabledeletecells.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fskins%2Fsilver%2Ftoolbar%2Ftabledeletecells.gif
plugins.test/fckeditor/www/editor/skins/silver/toolbar/tabledeletecolumns.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fskins%2Fsilver%2Ftoolbar%2Ftabledeletecolumns.gif
plugins.test/fckeditor/www/editor/skins/silver/toolbar/tabledeleterows.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fskins%2Fsilver%2Ftoolbar%2Ftabledeleterows.gif
plugins.test/fckeditor/www/editor/skins/silver/toolbar/tableinsertcell.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fskins%2Fsilver%2Ftoolbar%2Ftableinsertcell.gif
plugins.test/fckeditor/www/editor/skins/silver/toolbar/tableinsertcolumn.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fskins%2Fsilver%2Ftoolbar%2Ftableinsertcolumn.gif
plugins.test/fckeditor/www/editor/skins/silver/toolbar/tableinsertrow.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fskins%2Fsilver%2Ftoolbar%2Ftableinsertrow.gif
plugins.test/fckeditor/www/editor/skins/silver/toolbar/tablemergecells.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fskins%2Fsilver%2Ftoolbar%2Ftablemergecells.gif
plugins.test/fckeditor/www/editor/skins/silver/toolbar/tablesplitcell.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fskins%2Fsilver%2Ftoolbar%2Ftablesplitcell.gif
plugins.test/fckeditor/www/editor/skins/silver/toolbar/templates.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fskins%2Fsilver%2Ftoolbar%2Ftemplates.gif
plugins.test/fckeditor/www/editor/skins/silver/toolbar/textarea.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fskins%2Fsilver%2Ftoolbar%2Ftextarea.gif
plugins.test/fckeditor/www/editor/skins/silver/toolbar/textcolor.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fskins%2Fsilver%2Ftoolbar%2Ftextcolor.gif
plugins.test/fckeditor/www/editor/skins/silver/toolbar/textfield.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fskins%2Fsilver%2Ftoolbar%2Ftextfield.gif
plugins.test/fckeditor/www/editor/skins/silver/toolbar/underline.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fskins%2Fsilver%2Ftoolbar%2Funderline.gif
plugins.test/fckeditor/www/editor/skins/silver/toolbar/undo.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fskins%2Fsilver%2Ftoolbar%2Fundo.gif
plugins.test/fckeditor/www/editor/skins/silver/toolbar/universalkey.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fskins%2Fsilver%2Ftoolbar%2Funiversalkey.gif
plugins.test/fckeditor/www/editor/skins/silver/toolbar/unlink.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fskins%2Fsilver%2Ftoolbar%2Funlink.gif
plugins.test/fckeditor/www/editor/skins/silver/toolbar/unorderedlist.gif	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Feditor%2Fskins%2Fsilver%2Ftoolbar%2Funorderedlist.gif
plugins.test/fckeditor/www/fckconfig.js	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Ffckconfig.js
plugins.test/fckeditor/www/fckeditor.afp	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Ffckeditor.afp
plugins.test/fckeditor/www/fckeditor.asp	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Ffckeditor.asp
plugins.test/fckeditor/www/fckeditor.cfc	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Ffckeditor.cfc
plugins.test/fckeditor/www/fckeditor.cfm	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Ffckeditor.cfm
plugins.test/fckeditor/www/fckeditor.js	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Ffckeditor.js
plugins.test/fckeditor/www/fckeditor.lasso	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Ffckeditor.lasso
plugins.test/fckeditor/www/fckeditor.php	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Ffckeditor.php
plugins.test/fckeditor/www/fckeditor.pl	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Ffckeditor.pl
plugins.test/fckeditor/www/fckstyles.xml	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Ffckstyles.xml
plugins.test/fckeditor/www/fcktemplates.xml	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Ffcktemplates.xml
plugins.test/fckeditor/www/htaccess.txt	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Fhtaccess.txt
plugins.test/fckeditor/www/license.txt	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Ffckeditor%2Fwww%2Flicense.txt
plugins.test/helloworld	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fhelloworld
plugins.test/helloworld/bin	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fhelloworld%2Fbin
plugins.test/helloworld/bin/db-delete.pl	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fhelloworld%2Fbin%2Fdb-delete.pl
plugins.test/helloworld/bin/db-upgrade.pl	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fhelloworld%2Fbin%2Fdb-upgrade.pl
plugins.test/helloworld/bin/sayhello	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fhelloworld%2Fbin%2Fsayhello
plugins.test/helloworld/debian	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fhelloworld%2Fdebian
plugins.test/helloworld/debian/README.Debian	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fhelloworld%2Fdebian%2FREADME.Debian
plugins.test/helloworld/debian/changelog	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fhelloworld%2Fdebian%2Fchangelog
plugins.test/helloworld/debian/control	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fhelloworld%2Fdebian%2Fcontrol
plugins.test/helloworld/debian/copyright	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fhelloworld%2Fdebian%2Fcopyright
plugins.test/helloworld/debian/cron.d	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fhelloworld%2Fdebian%2Fcron.d
plugins.test/helloworld/debian/dirs	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fhelloworld%2Fdebian%2Fdirs
plugins.test/helloworld/debian/postinst	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fhelloworld%2Fdebian%2Fpostinst
plugins.test/helloworld/debian/postrm.ex	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fhelloworld%2Fdebian%2Fpostrm.ex
plugins.test/helloworld/debian/preinst.ex	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fhelloworld%2Fdebian%2Fpreinst.ex
plugins.test/helloworld/debian/prerm	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fhelloworld%2Fdebian%2Fprerm
plugins.test/helloworld/debian/rules	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fhelloworld%2Fdebian%2Frules
plugins.test/helloworld/etc	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fhelloworld%2Fetc
plugins.test/helloworld/etc/world.conf	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fhelloworld%2Fetc%2Fworld.conf
plugins.test/helloworld/httpd.conf	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fhelloworld%2Fhttpd.conf
plugins.test/helloworld/include	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fhelloworld%2Finclude
plugins.test/helloworld/include/HelloWorldPlugin.class	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fhelloworld%2Finclude%2FHelloWorldPlugin.class
plugins.test/helloworld/include/helloworld-init.php	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fhelloworld%2Finclude%2Fhelloworld-init.php
plugins.test/helloworld/lib	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fhelloworld%2Flib
plugins.test/helloworld/lib/helloworld-init.sql	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fhelloworld%2Flib%2Fhelloworld-init.sql
plugins.test/helloworld/www	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fhelloworld%2Fwww
plugins.test/helloworld/www/group.php	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fhelloworld%2Fwww%2Fgroup.php
plugins.test/helloworld/www/index.php	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fhelloworld%2Fwww%2Findex.php
plugins.test/helloworld/www/toggle.php	5699 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fhelloworld%2Fwww%2Ftoggle.php

   + plugins.test/helloworld2	5700 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fhelloworld2
plugins.test/helloworld2/INSTALL	5700 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fhelloworld2%2FINSTALL
plugins.test/helloworld2/bin	5700 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fhelloworld2%2Fbin
plugins.test/helloworld2/bin/sayhello	5700 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fhelloworld2%2Fbin%2Fsayhello
plugins.test/helloworld2/common	5700 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fhelloworld2%2Fcommon
plugins.test/helloworld2/common/HelloWorldPlugin.class	5700 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fhelloworld2%2Fcommon%2FHelloWorldPlugin.class
plugins.test/helloworld2/common/helloworld-init.php	5700 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fhelloworld2%2Fcommon%2Fhelloworld-init.php
plugins.test/helloworld2/common/languages	5700 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fhelloworld2%2Fcommon%2Flanguages
plugins.test/helloworld2/common/languages/Base.tab	5700 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fhelloworld2%2Fcommon%2Flanguages%2FBase.tab
plugins.test/helloworld2/db	5700 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fhelloworld2%2Fdb
plugins.test/helloworld2/db/helloworld-init.sql	5700 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fhelloworld2%2Fdb%2Fhelloworld-init.sql
plugins.test/helloworld2/etc	5700 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fhelloworld2%2Fetc
plugins.test/helloworld2/etc/plugins	5700 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fhelloworld2%2Fetc%2Fplugins
plugins.test/helloworld2/etc/plugins/helloworld	5700 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fhelloworld2%2Fetc%2Fplugins%2Fhelloworld
plugins.test/helloworld2/etc/plugins/helloworld/config.php	5700 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fhelloworld2%2Fetc%2Fplugins%2Fhelloworld%2Fconfig.php
plugins.test/helloworld2/httpd.conf	5700 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fhelloworld2%2Fhttpd.conf
plugins.test/helloworld2/www	5700 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fhelloworld2%2Fwww
plugins.test/helloworld2/www/index.php	5700 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fhelloworld2%2Fwww%2Findex.php
plugins.test/ldapextauth	5700 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fldapextauth
plugins.test/ldapextauth/README	5700 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fldapextauth%2FREADME
plugins.test/ldapextauth/bin	5700 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fldapextauth%2Fbin
plugins.test/ldapextauth/bin/db-delete.pl	5700 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fldapextauth%2Fbin%2Fdb-delete.pl
plugins.test/ldapextauth/bin/db-upgrade.pl	5700 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fldapextauth%2Fbin%2Fdb-upgrade.pl
plugins.test/ldapextauth/db	5700 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fldapextauth%2Fdb
plugins.test/ldapextauth/db/install_ldapextauth.sql	5700 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fldapextauth%2Fdb%2Finstall_ldapextauth.sql
plugins.test/ldapextauth/debian	5700 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fldapextauth%2Fdebian
plugins.test/ldapextauth/debian/README.Debian	5700 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fldapextauth%2Fdebian%2FREADME.Debian
plugins.test/ldapextauth/debian/changelog	5700 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fldapextauth%2Fdebian%2Fchangelog
plugins.test/ldapextauth/debian/control	5700 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fldapextauth%2Fdebian%2Fcontrol
plugins.test/ldapextauth/debian/copyright	5700 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fldapextauth%2Fdebian%2Fcopyright
plugins.test/ldapextauth/debian/dirs	5700 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fldapextauth%2Fdebian%2Fdirs
plugins.test/ldapextauth/debian/postinst	5700 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fldapextauth%2Fdebian%2Fpostinst
plugins.test/ldapextauth/debian/prerm	5700 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fldapextauth%2Fdebian%2Fprerm
plugins.test/ldapextauth/debian/rules	5700 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fldapextauth%2Fdebian%2Frules
plugins.test/ldapextauth/etc	5700 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fldapextauth%2Fetc
plugins.test/ldapextauth/etc/plugins	5700 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fldapextauth%2Fetc%2Fplugins
plugins.test/ldapextauth/etc/plugins/ldapextauth	5700 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fldapextauth%2Fetc%2Fplugins%2Fldapextauth
plugins.test/ldapextauth/etc/plugins/ldapextauth/config.php	5700 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fldapextauth%2Fetc%2Fplugins%2Fldapextauth%2Fconfig.php
plugins.test/ldapextauth/etc/plugins/ldapextauth/mapping.php	5700 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fldapextauth%2Fetc%2Fplugins%2Fldapextauth%2Fmapping.php
plugins.test/ldapextauth/gforge-plugin-ldapextauth.spec	5700 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fldapextauth%2Fgforge-plugin-ldapextauth.spec
plugins.test/ldapextauth/include	5700 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fldapextauth%2Finclude
plugins.test/ldapextauth/include/LdapExtAuthPlugin.class	5700 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fldapextauth%2Finclude%2FLdapExtAuthPlugin.class
plugins.test/ldapextauth/include/ldapextauth-init.php	5700 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fldapextauth%2Finclude%2Fldapextauth-init.php
plugins.test/ldapextauth/login.diff	5700 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fldapextauth%2Flogin.diff
plugins.test/ldapextauth/rpm-specific	5700 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fldapextauth%2Frpm-specific
plugins.test/ldapextauth/rpm-specific/.keepme	5700 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fldapextauth%2Frpm-specific%2F.keepme
plugins.test/ldapextauth/session.diff	5700 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fldapextauth%2Fsession.diff
plugins.test/scmccase	5700 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fscmccase
plugins.test/scmccase/README	5700 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fscmccase%2FREADME
plugins.test/scmccase/bin	5700 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fscmccase%2Fbin
plugins.test/scmccase/bin/ccase_dump_update.pl	5700 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fscmccase%2Fbin%2Fccase_dump_update.pl
plugins.test/scmccase/bin/db-delete.pl	5700 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fscmccase%2Fbin%2Fdb-delete.pl
plugins.test/scmccase/bin/db-upgrade.pl	5700 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fscmccase%2Fbin%2Fdb-upgrade.pl
plugins.test/scmccase/bin/install-ccase.sh	5700 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fscmccase%2Fbin%2Finstall-ccase.sh
plugins.test/scmccase/common	5700 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fscmccase%2Fcommon
plugins.test/scmccase/common/CCasePlugin.class	5700 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fscmccase%2Fcommon%2FCCasePlugin.class
plugins.test/scmccase/common/scmccase-init.php	5700 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fscmccase%2Fcommon%2Fscmccase-init.php
plugins.test/scmccase/db	5700 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fscmccase%2Fdb
plugins.test/scmccase/db/scmccase-init.sql	5700 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fscmccase%2Fdb%2Fscmccase-init.sql
plugins.test/scmccase/debian	5700 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fscmccase%2Fdebian
plugins.test/scmccase/debian/README.Debian	5700 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fscmccase%2Fdebian%2FREADME.Debian
plugins.test/scmccase/debian/changelog	5700 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fscmccase%2Fdebian%2Fchangelog
plugins.test/scmccase/debian/control	5700 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fscmccase%2Fdebian%2Fcontrol
plugins.test/scmccase/debian/copyright	5700 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fscmccase%2Fdebian%2Fcopyright
plugins.test/scmccase/debian/cron.d	5700 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fscmccase%2Fdebian%2Fcron.d
plugins.test/scmccase/debian/dirs	5700 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fscmccase%2Fdebian%2Fdirs
plugins.test/scmccase/debian/postinst	5700 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fscmccase%2Fdebian%2Fpostinst
plugins.test/scmccase/debian/postrm.ex	5700 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fscmccase%2Fdebian%2Fpostrm.ex
plugins.test/scmccase/debian/preinst.ex	5700 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fscmccase%2Fdebian%2Fpreinst.ex
plugins.test/scmccase/debian/prerm	5700 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fscmccase%2Fdebian%2Fprerm
plugins.test/scmccase/debian/rules	5700 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fscmccase%2Fdebian%2Frules
plugins.test/scmccase/etc	5700 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fscmccase%2Fetc
plugins.test/scmccase/etc/config.php	5700 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fscmccase%2Fetc%2Fconfig.php
plugins.test/scmccase/etc/config.pl	5700 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fscmccase%2Fetc%2Fconfig.pl
plugins.test/scmcvs	5700 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fscmcvs
plugins.test/scmcvs/AUTHORS	5700 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fscmcvs%2FAUTHORS
plugins.test/scmcvs/COPYING	5700 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fscmcvs%2FCOPYING
plugins.test/scmcvs/README	5700 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fscmcvs%2FREADME
plugins.test/scmcvs/TODO	5700 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fscmcvs%2FTODO
plugins.test/scmcvs/bin	5700 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fscmcvs%2Fbin
plugins.test/scmcvs/bin/README	5700 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fscmcvs%2Fbin%2FREADME
plugins.test/scmcvs/bin/aclcheck.php	5700 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fscmcvs%2Fbin%2Faclcheck.php
plugins.test/scmcvs/bin/cvs-pserver	5700 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fscmcvs%2Fbin%2Fcvs-pserver
plugins.test/scmcvs/bin/cvs_dump.pl	5700 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fscmcvs%2Fbin%2Fcvs_dump.pl
plugins.test/scmcvs/bin/cvs_update.pl	5700 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fscmcvs%2Fbin%2Fcvs_update.pl
plugins.test/scmcvs/bin/db-delete.pl	5700 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fscmcvs%2Fbin%2Fdb-delete.pl
plugins.test/scmcvs/bin/db-upgrade.pl	5700 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fscmcvs%2Fbin%2Fdb-upgrade.pl
plugins.test/scmcvs/bin/install-cvs.sh	5700 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fscmcvs%2Fbin%2Finstall-cvs.sh
plugins.test/scmcvs/bin/snapshots.sh	5700 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fscmcvs%2Fbin%2Fsnapshots.sh
plugins.test/scmcvs/bin/stats_cvs.pl	5700 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fscmcvs%2Fbin%2Fstats_cvs.pl
plugins.test/scmcvs/bin/syncmail	5700 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fscmcvs%2Fbin%2Fsyncmail
plugins.test/scmcvs/bin/syncmail-cvs-1.11	5700 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fscmcvs%2Fbin%2Fsyncmail-cvs-1.11
plugins.test/scmcvs/bin/syncmail-cvs-1.12	5700 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fscmcvs%2Fbin%2Fsyncmail-cvs-1.12
plugins.test/scmcvs/cgi-bin	5700 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fscmcvs%2Fcgi-bin
plugins.test/scmcvs/cgi-bin/cvsweb	5700 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fscmcvs%2Fcgi-bin%2Fcvsweb
plugins.test/scmcvs/cgi-bin/cvsweb.ori	5700 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fscmcvs%2Fcgi-bin%2Fcvsweb.ori
plugins.test/scmcvs/common	5700 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fscmcvs%2Fcommon
plugins.test/scmcvs/common/CVSPlugin.class	5700 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fscmcvs%2Fcommon%2FCVSPlugin.class
plugins.test/scmcvs/common/Snoopy.class	5700 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fscmcvs%2Fcommon%2FSnoopy.class
plugins.test/scmcvs/common/languages	5700 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fscmcvs%2Fcommon%2Flanguages
plugins.test/scmcvs/common/languages/Base.tab	5700 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fscmcvs%2Fcommon%2Flanguages%2FBase.tab
plugins.test/scmcvs/common/languages/Basque.tab	5700 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fscmcvs%2Fcommon%2Flanguages%2FBasque.tab
plugins.test/scmcvs/common/languages/Chinese.tab	5700 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fscmcvs%2Fcommon%2Flanguages%2FChinese.tab
plugins.test/scmcvs/common/languages/Dutch.tab	5700 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fscmcvs%2Fcommon%2Flanguages%2FDutch.tab
plugins.test/scmcvs/common/languages/French.tab	5700 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fscmcvs%2Fcommon%2Flanguages%2FFrench.tab
plugins.test/scmcvs/common/languages/German.tab	5700 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fscmcvs%2Fcommon%2Flanguages%2FGerman.tab
plugins.test/scmcvs/common/languages/Italian.tab	5700 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fscmcvs%2Fcommon%2Flanguages%2FItalian.tab
plugins.test/scmcvs/common/languages/Korean.tab	5700 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fscmcvs%2Fcommon%2Flanguages%2FKorean.tab
plugins.test/scmcvs/common/languages/PortugueseBrazilian.tab	5700 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fscmcvs%2Fcommon%2Flanguages%2FPortugueseBrazilian.tab
plugins.test/scmcvs/common/languages/Spanish.tab	5700 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fscmcvs%2Fcommon%2Flanguages%2FSpanish.tab
plugins.test/scmcvs/common/languages/Swedish.tab	5700 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fscmcvs%2Fcommon%2Flanguages%2FSwedish.tab
plugins.test/scmcvs/common/scmcvs-init.php	5700 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fscmcvs%2Fcommon%2Fscmcvs-init.php
plugins.test/scmcvs/cronjobs	5700 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fscmcvs%2Fcronjobs
plugins.test/scmcvs/cronjobs/crontab.in	5700 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fscmcvs%2Fcronjobs%2Fcrontab.in
plugins.test/scmcvs/cronjobs/cvs.php	5700 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fscmcvs%2Fcronjobs%2Fcvs.php
plugins.test/scmcvs/cronjobs/cvscreate.sh	5700 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fscmcvs%2Fcronjobs%2Fcvscreate.sh
plugins.test/scmcvs/cronjobs/cvssh.pl	5700 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fscmcvs%2Fcronjobs%2Fcvssh.pl
plugins.test/scmcvs/cronjobs/default_page.php	5700 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fscmcvs%2Fcronjobs%2Fdefault_page.php
plugins.test/scmcvs/cronjobs/ftp_create.php	5700 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fscmcvs%2Fcronjobs%2Fftp_create.php
plugins.test/scmcvs/cronjobs/grap.c	5700 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fscmcvs%2Fcronjobs%2Fgrap.c
plugins.test/scmcvs/cronjobs/history_parse.php	5700 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fscmcvs%2Fcronjobs%2Fhistory_parse.php
plugins.test/scmcvs/cronjobs/homedirs.php	5700 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fscmcvs%2Fcronjobs%2Fhomedirs.php
plugins.test/scmcvs/cronjobs/ssh_create.php	5700 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fscmcvs%2Fcronjobs%2Fssh_create.php
plugins.test/scmcvs/cronjobs/syncmail	5700 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fscmcvs%2Fcronjobs%2Fsyncmail
plugins.test/scmcvs/cronjobs/tarballs.php	5700 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fscmcvs%2Fcronjobs%2Ftarballs.php
plugins.test/scmcvs/cronjobs/usergroup.php	5700 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fscmcvs%2Fcronjobs%2Fusergroup.php
plugins.test/scmcvs/cronjobs/www	5700 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fscmcvs%2Fcronjobs%2Fwww
plugins.test/scmcvs/cronjobs/www/index.php	5700 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fscmcvs%2Fcronjobs%2Fwww%2Findex.php
plugins.test/scmcvs/db	5700 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fscmcvs%2Fdb
plugins.test/scmcvs/db/scmcvs-init.sql	5700 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fscmcvs%2Fdb%2Fscmcvs-init.sql
plugins.test/scmcvs/debian	5700 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fscmcvs%2Fdebian
plugins.test/scmcvs/debian/README.Debian	5700 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fscmcvs%2Fdebian%2FREADME.Debian
plugins.test/scmcvs/debian/changelog	5700 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fscmcvs%2Fdebian%2Fchangelog
plugins.test/scmcvs/debian/control	5700 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fscmcvs%2Fdebian%2Fcontrol
plugins.test/scmcvs/debian/copyright	5700 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fscmcvs%2Fdebian%2Fcopyright
plugins.test/scmcvs/debian/cron.d	5700 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fscmcvs%2Fdebian%2Fcron.d
plugins.test/scmcvs/debian/dirs	5700 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fscmcvs%2Fdebian%2Fdirs
plugins.test/scmcvs/debian/patches	5700 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fscmcvs%2Fdebian%2Fpatches
plugins.test/scmcvs/debian/patches/00list	5700 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fscmcvs%2Fdebian%2Fpatches%2F00list
plugins.test/scmcvs/debian/patches/01_fix_cvsroot_lockdir.dpatch	5700 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fscmcvs%2Fdebian%2Fpatches%2F01_fix_cvsroot_lockdir.dpatch
plugins.test/scmcvs/debian/postinst	5700 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fscmcvs%2Fdebian%2Fpostinst
plugins.test/scmcvs/debian/prerm	5700 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fscmcvs%2Fdebian%2Fprerm
plugins.test/scmcvs/debian/rules	5700 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fscmcvs%2Fdebian%2Frules
plugins.test/scmcvs/etc	5700 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fscmcvs%2Fetc
plugins.test/scmcvs/etc/httpd.d	5700 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fscmcvs%2Fetc%2Fhttpd.d
plugins.test/scmcvs/etc/httpd.d/11scm50cvs	5700 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fscmcvs%2Fetc%2Fhttpd.d%2F11scm50cvs
plugins.test/scmcvs/etc/httpd.d/12scm50cvs.ssl	5700 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fscmcvs%2Fetc%2Fhttpd.d%2F12scm50cvs.ssl
plugins.test/scmcvs/etc/httpd.d/30virtualcvs	5700 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fscmcvs%2Fetc%2Fhttpd.d%2F30virtualcvs
plugins.test/scmcvs/etc/httpd.d/31virtualcvs.ssl	5700 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fscmcvs%2Fetc%2Fhttpd.d%2F31virtualcvs.ssl
plugins.test/scmcvs/etc/plugins	5700 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fscmcvs%2Fetc%2Fplugins
plugins.test/scmcvs/etc/plugins/scmcvs	5700 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fscmcvs%2Fetc%2Fplugins%2Fscmcvs
plugins.test/scmcvs/etc/plugins/scmcvs/config.php	5700 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fscmcvs%2Fetc%2Fplugins%2Fscmcvs%2Fconfig.php
plugins.test/scmcvs/etc/plugins/scmcvs/config.pl	5700 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fscmcvs%2Fetc%2Fplugins%2Fscmcvs%2Fconfig.pl
plugins.test/scmcvs/etc/plugins/scmcvs/cvsweb.conf	5700 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fscmcvs%2Fetc%2Fplugins%2Fscmcvs%2Fcvsweb.conf
plugins.test/scmcvs/gforge-plugin-scmcvs.spec	5700 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fscmcvs%2Fgforge-plugin-scmcvs.spec
plugins.test/scmcvs/rpm-specific	5700 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fscmcvs%2Frpm-specific
plugins.test/scmcvs/rpm-specific/cron.d	5700 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fscmcvs%2Frpm-specific%2Fcron.d
plugins.test/scmcvs/rpm-specific/cron.d/gforge-plugin-scmcvs	5700 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fscmcvs%2Frpm-specific%2Fcron.d%2Fgforge-plugin-scmcvs
plugins.test/scmcvs/rpm-specific/cronjobs	5700 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fscmcvs%2Frpm-specific%2Fcronjobs
plugins.test/scmcvs/rpm-specific/cronjobs/.keepme	5700 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fscmcvs%2Frpm-specific%2Fcronjobs%2F.keepme
plugins.test/scmcvs/rpm-specific/languages	5700 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fscmcvs%2Frpm-specific%2Flanguages
plugins.test/scmcvs/rpm-specific/languages/.keepme	5700 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fscmcvs%2Frpm-specific%2Flanguages%2F.keepme
plugins.test/scmcvs/www	5700 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fscmcvs%2Fwww
plugins.test/scmcvs/www/acl.php	5700 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fscmcvs%2Fwww%2Facl.php
plugins.test/scmsvn	5700 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fscmsvn
plugins.test/scmsvn/README	5700 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fscmsvn%2FREADME
plugins.test/scmsvn/bin	5700 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fscmsvn%2Fbin
plugins.test/scmsvn/bin/db-delete.pl	5700 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fscmsvn%2Fbin%2Fdb-delete.pl
plugins.test/scmsvn/bin/db-upgrade.pl	5700 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fscmsvn%2Fbin%2Fdb-upgrade.pl
plugins.test/scmsvn/bin/install-svn.sh	5700 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fscmsvn%2Fbin%2Finstall-svn.sh
plugins.test/scmsvn/bin/install-viewcvs.sh	5700 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fscmsvn%2Fbin%2Finstall-viewcvs.sh
plugins.test/scmsvn/bin/snapshots.sh	5700 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fscmsvn%2Fbin%2Fsnapshots.sh
plugins.test/scmsvn/bin/svn-create.php	5700 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fscmsvn%2Fbin%2Fsvn-create.php
plugins.test/scmsvn/bin/svn_dump.pl	5700 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fscmsvn%2Fbin%2Fsvn_dump.pl
plugins.test/scmsvn/bin/svn_update.pl	5700 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fscmsvn%2Fbin%2Fsvn_update.pl
plugins.test/scmsvn/cgi-bin	5700 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fscmsvn%2Fcgi-bin
plugins.test/scmsvn/cgi-bin/viewcvs.cgi	5700 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fscmsvn%2Fcgi-bin%2Fviewcvs.cgi
plugins.test/scmsvn/common	5700 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fscmsvn%2Fcommon
plugins.test/scmsvn/common/SVNPlugin.class	5700 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fscmsvn%2Fcommon%2FSVNPlugin.class
plugins.test/scmsvn/common/languages	5700 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fscmsvn%2Fcommon%2Flanguages
plugins.test/scmsvn/common/languages/Base.tab	5700 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fscmsvn%2Fcommon%2Flanguages%2FBase.tab
plugins.test/scmsvn/common/languages/French.tab	5700 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fscmsvn%2Fcommon%2Flanguages%2FFrench.tab
plugins.test/scmsvn/common/languages/Italian.tab	5700 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fscmsvn%2Fcommon%2Flanguages%2FItalian.tab
plugins.test/scmsvn/common/languages/Korean.tab	5700 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fscmsvn%2Fcommon%2Flanguages%2FKorean.tab
plugins.test/scmsvn/common/scmsvn-init.php	5700 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fscmsvn%2Fcommon%2Fscmsvn-init.php
plugins.test/scmsvn/cronjobs	5700 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fscmsvn%2Fcronjobs
plugins.test/scmsvn/cronjobs/README	5700 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fscmsvn%2Fcronjobs%2FREADME
plugins.test/scmsvn/cronjobs/commit-email_pl	5700 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fscmsvn%2Fcronjobs%2Fcommit-email_pl
plugins.test/scmsvn/cronjobs/create_docman.php	5700 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fscmsvn%2Fcronjobs%2Fcreate_docman.php
plugins.test/scmsvn/cronjobs/create_group_home.php	5700 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fscmsvn%2Fcronjobs%2Fcreate_group_home.php
plugins.test/scmsvn/cronjobs/create_groups.php	5700 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fscmsvn%2Fcronjobs%2Fcreate_groups.php
plugins.test/scmsvn/cronjobs/create_svn.php	5700 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fscmsvn%2Fcronjobs%2Fcreate_svn.php
plugins.test/scmsvn/cronjobs/create_users.php	5700 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fscmsvn%2Fcronjobs%2Fcreate_users.php
plugins.test/scmsvn/cronjobs/crontab.in	5700 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fscmsvn%2Fcronjobs%2Fcrontab.in
plugins.test/scmsvn/cronjobs/default_page.php	5700 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fscmsvn%2Fcronjobs%2Fdefault_page.php
plugins.test/scmsvn/cronjobs/svn-index.php	5700 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fscmsvn%2Fcronjobs%2Fsvn-index.php
plugins.test/scmsvn/cronjobs/svn-stats.php	5700 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fscmsvn%2Fcronjobs%2Fsvn-stats.php
plugins.test/scmsvn/cronjobs/tarballs.php	5700 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fscmsvn%2Fcronjobs%2Ftarballs.php
plugins.test/scmsvn/cronjobs/www	5700 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fscmsvn%2Fcronjobs%2Fwww
plugins.test/scmsvn/cronjobs/www/index.php	5700 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fscmsvn%2Fcronjobs%2Fwww%2Findex.php
plugins.test/scmsvn/cronjobs/www/svnindex.css	5700 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fscmsvn%2Fcronjobs%2Fwww%2Fsvnindex.css
plugins.test/scmsvn/cronjobs/www/svnindex.xsl	5700 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fscmsvn%2Fcronjobs%2Fwww%2Fsvnindex.xsl
plugins.test/scmsvn/db	5700 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fscmsvn%2Fdb
plugins.test/scmsvn/db/scmsvn-init.sql	5700 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fscmsvn%2Fdb%2Fscmsvn-init.sql
plugins.test/scmsvn/debian	5700 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fscmsvn%2Fdebian
plugins.test/scmsvn/debian/README.Debian	5700 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fscmsvn%2Fdebian%2FREADME.Debian
plugins.test/scmsvn/debian/changelog	5700 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fscmsvn%2Fdebian%2Fchangelog
plugins.test/scmsvn/debian/control	5700 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fscmsvn%2Fdebian%2Fcontrol
plugins.test/scmsvn/debian/copyright	5700 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fscmsvn%2Fdebian%2Fcopyright
plugins.test/scmsvn/debian/cron.d	5700 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fscmsvn%2Fdebian%2Fcron.d
plugins.test/scmsvn/debian/dirs	5700 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fscmsvn%2Fdebian%2Fdirs
plugins.test/scmsvn/debian/patches	5700 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fscmsvn%2Fdebian%2Fpatches
plugins.test/scmsvn/debian/patches/00list	5700 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fscmsvn%2Fdebian%2Fpatches%2F00list
plugins.test/scmsvn/debian/patches/disable-dav.dpatch	5700 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fscmsvn%2Fdebian%2Fpatches%2Fdisable-dav.dpatch
plugins.test/scmsvn/debian/postinst	5700 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fscmsvn%2Fdebian%2Fpostinst
plugins.test/scmsvn/debian/prerm	5700 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fscmsvn%2Fdebian%2Fprerm
plugins.test/scmsvn/debian/rules	5700 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fscmsvn%2Fdebian%2Frules
plugins.test/scmsvn/etc	5700 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fscmsvn%2Fetc
plugins.test/scmsvn/etc/httpd.d	5700 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fscmsvn%2Fetc%2Fhttpd.d
plugins.test/scmsvn/etc/httpd.d/11scm60svn	5700 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fscmsvn%2Fetc%2Fhttpd.d%2F11scm60svn
plugins.test/scmsvn/etc/httpd.d/12scm60svn.ssl	5700 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fscmsvn%2Fetc%2Fhttpd.d%2F12scm60svn.ssl
plugins.test/scmsvn/etc/plugins	5700 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fscmsvn%2Fetc%2Fplugins
plugins.test/scmsvn/etc/plugins/scmsvn	5700 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fscmsvn%2Fetc%2Fplugins%2Fscmsvn
plugins.test/scmsvn/etc/plugins/scmsvn/config.php	5700 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fscmsvn%2Fetc%2Fplugins%2Fscmsvn%2Fconfig.php
plugins.test/scmsvn/etc/plugins/scmsvn/config.pl	5700 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fscmsvn%2Fetc%2Fplugins%2Fscmsvn%2Fconfig.pl
plugins.test/scmsvn/etc/plugins/scmsvn/viewcvs	5700 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fscmsvn%2Fetc%2Fplugins%2Fscmsvn%2Fviewcvs
plugins.test/scmsvn/etc/plugins/scmsvn/viewcvs/templates	5700 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fscmsvn%2Fetc%2Fplugins%2Fscmsvn%2Fviewcvs%2Ftemplates
plugins.test/scmsvn/etc/plugins/scmsvn/viewcvs/templates/annotate.ezt	5700 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fscmsvn%2Fetc%2Fplugins%2Fscmsvn%2Fviewcvs%2Ftemplates%2Fannotate.ezt
plugins.test/scmsvn/etc/plugins/scmsvn/viewcvs/templates/diff.ezt	5700 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fscmsvn%2Fetc%2Fplugins%2Fscmsvn%2Fviewcvs%2Ftemplates%2Fdiff.ezt
plugins.test/scmsvn/etc/plugins/scmsvn/viewcvs/templates/dir_alternate.ezt	5700 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fscmsvn%2Fetc%2Fplugins%2Fscmsvn%2Fviewcvs%2Ftemplates%2Fdir_alternate.ezt
plugins.test/scmsvn/etc/plugins/scmsvn/viewcvs/templates/directory.ezt	5700 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fscmsvn%2Fetc%2Fplugins%2Fscmsvn%2Fviewcvs%2Ftemplates%2Fdirectory.ezt
plugins.test/scmsvn/etc/plugins/scmsvn/viewcvs/templates/error.ezt	5700 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fscmsvn%2Fetc%2Fplugins%2Fscmsvn%2Fviewcvs%2Ftemplates%2Ferror.ezt
plugins.test/scmsvn/etc/plugins/scmsvn/viewcvs/templates/graph.ezt	5700 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fscmsvn%2Fetc%2Fplugins%2Fscmsvn%2Fviewcvs%2Ftemplates%2Fgraph.ezt
plugins.test/scmsvn/etc/plugins/scmsvn/viewcvs/templates/include	5700 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fscmsvn%2Fetc%2Fplugins%2Fscmsvn%2Fviewcvs%2Ftemplates%2Finclude
plugins.test/scmsvn/etc/plugins/scmsvn/viewcvs/templates/include/branch.ezt	5700 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fscmsvn%2Fetc%2Fplugins%2Fscmsvn%2Fviewcvs%2Ftemplates%2Finclude%2Fbranch.ezt
plugins.test/scmsvn/etc/plugins/scmsvn/viewcvs/templates/include/branch_form.ezt	5700 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fscmsvn%2Fetc%2Fplugins%2Fscmsvn%2Fviewcvs%2Ftemplates%2Finclude%2Fbranch_form.ezt
plugins.test/scmsvn/etc/plugins/scmsvn/viewcvs/templates/include/diff_form.ezt	5700 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fscmsvn%2Fetc%2Fplugins%2Fscmsvn%2Fviewcvs%2Ftemplates%2Finclude%2Fdiff_form.ezt
plugins.test/scmsvn/etc/plugins/scmsvn/viewcvs/templates/include/dir_footer.ezt	5700 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fscmsvn%2Fetc%2Fplugins%2Fscmsvn%2Fviewcvs%2Ftemplates%2Finclude%2Fdir_footer.ezt
plugins.test/scmsvn/etc/plugins/scmsvn/viewcvs/templates/include/dir_header.ezt	5700 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fscmsvn%2Fetc%2Fplugins%2Fscmsvn%2Fviewcvs%2Ftemplates%2Finclude%2Fdir_header.ezt
plugins.test/scmsvn/etc/plugins/scmsvn/viewcvs/templates/include/footer.ezt	5700 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fscmsvn%2Fetc%2Fplugins%2Fscmsvn%2Fviewcvs%2Ftemplates%2Finclude%2Ffooter.ezt
plugins.test/scmsvn/etc/plugins/scmsvn/viewcvs/templates/include/header.ezt	5700 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fscmsvn%2Fetc%2Fplugins%2Fscmsvn%2Fviewcvs%2Ftemplates%2Finclude%2Fheader.ezt
plugins.test/scmsvn/etc/plugins/scmsvn/viewcvs/templates/include/paging.ezt	5700 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fscmsvn%2Fetc%2Fplugins%2Fscmsvn%2Fviewcvs%2Ftemplates%2Finclude%2Fpaging.ezt
plugins.test/scmsvn/etc/plugins/scmsvn/viewcvs/templates/include/sort.ezt	5700 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fscmsvn%2Fetc%2Fplugins%2Fscmsvn%2Fviewcvs%2Ftemplates%2Finclude%2Fsort.ezt
plugins.test/scmsvn/etc/plugins/scmsvn/viewcvs/templates/include/view_tag.ezt	5700 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fscmsvn%2Fetc%2Fplugins%2Fscmsvn%2Fviewcvs%2Ftemplates%2Finclude%2Fview_tag.ezt
plugins.test/scmsvn/etc/plugins/scmsvn/viewcvs/templates/log.ezt	5700 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fscmsvn%2Fetc%2Fplugins%2Fscmsvn%2Fviewcvs%2Ftemplates%2Flog.ezt
plugins.test/scmsvn/etc/plugins/scmsvn/viewcvs/templates/log_table.ezt	5700 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fscmsvn%2Fetc%2Fplugins%2Fscmsvn%2Fviewcvs%2Ftemplates%2Flog_table.ezt
plugins.test/scmsvn/etc/plugins/scmsvn/viewcvs/templates/markup.ezt	5700 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fscmsvn%2Fetc%2Fplugins%2Fscmsvn%2Fviewcvs%2Ftemplates%2Fmarkup.ezt
plugins.test/scmsvn/etc/plugins/scmsvn/viewcvs/templates/query.ezt	5700 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fscmsvn%2Fetc%2Fplugins%2Fscmsvn%2Fviewcvs%2Ftemplates%2Fquery.ezt
plugins.test/scmsvn/etc/plugins/scmsvn/viewcvs/templates/query_form.ezt	5700 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fscmsvn%2Fetc%2Fplugins%2Fscmsvn%2Fviewcvs%2Ftemplates%2Fquery_form.ezt
plugins.test/scmsvn/etc/plugins/scmsvn/viewcvs/templates/query_results.ezt	5700 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fscmsvn%2Fetc%2Fplugins%2Fscmsvn%2Fviewcvs%2Ftemplates%2Fquery_results.ezt
plugins.test/scmsvn/etc/plugins/scmsvn/viewcvs/templates/revision.ezt	5700 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fscmsvn%2Fetc%2Fplugins%2Fscmsvn%2Fviewcvs%2Ftemplates%2Frevision.ezt
plugins.test/scmsvn/www	5700 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fscmsvn%2Fwww
plugins.test/scmsvn/www/viewcvs	5700 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fscmsvn%2Fwww%2Fviewcvs
plugins.test/scmsvn/www/viewcvs/contributing.html	5700 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fscmsvn%2Fwww%2Fviewcvs%2Fcontributing.html
plugins.test/scmsvn/www/viewcvs/help_dirview.html	5700 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fscmsvn%2Fwww%2Fviewcvs%2Fhelp_dirview.html
plugins.test/scmsvn/www/viewcvs/help_log.html	5700 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fscmsvn%2Fwww%2Fviewcvs%2Fhelp_log.html
plugins.test/scmsvn/www/viewcvs/help_logtable.html	5700 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fscmsvn%2Fwww%2Fviewcvs%2Fhelp_logtable.html
plugins.test/scmsvn/www/viewcvs/help_query.html	5700 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fscmsvn%2Fwww%2Fviewcvs%2Fhelp_query.html
plugins.test/scmsvn/www/viewcvs/help_rootview.html	5700 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fscmsvn%2Fwww%2Fviewcvs%2Fhelp_rootview.html
plugins.test/scmsvn/www/viewcvs/icons	5700 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fscmsvn%2Fwww%2Fviewcvs%2Ficons
plugins.test/scmsvn/www/viewcvs/icons/back.gif	5700 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fscmsvn%2Fwww%2Fviewcvs%2Ficons%2Fback.gif
plugins.test/scmsvn/www/viewcvs/icons/forward.gif	5700 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fscmsvn%2Fwww%2Fviewcvs%2Ficons%2Fforward.gif
plugins.test/scmsvn/www/viewcvs/icons/small	5700 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fscmsvn%2Fwww%2Fviewcvs%2Ficons%2Fsmall
plugins.test/scmsvn/www/viewcvs/icons/small/back.gif	5700 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fscmsvn%2Fwww%2Fviewcvs%2Ficons%2Fsmall%2Fback.gif
plugins.test/scmsvn/www/viewcvs/icons/small/debian.jpg	5700 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fscmsvn%2Fwww%2Fviewcvs%2Ficons%2Fsmall%2Fdebian.jpg
plugins.test/scmsvn/www/viewcvs/icons/small/dir.gif	5700 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fscmsvn%2Fwww%2Fviewcvs%2Ficons%2Fsmall%2Fdir.gif
plugins.test/scmsvn/www/viewcvs/icons/small/text.gif	5700 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fscmsvn%2Fwww%2Fviewcvs%2Ficons%2Fsmall%2Ftext.gif
plugins.test/scmsvn/www/viewcvs/images	5700 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fscmsvn%2Fwww%2Fviewcvs%2Fimages
plugins.test/scmsvn/www/viewcvs/images/chalk.jpg	5700 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fscmsvn%2Fwww%2Fviewcvs%2Fimages%2Fchalk.jpg
plugins.test/scmsvn/www/viewcvs/images/cvsgraph_16x16.png	5700 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fscmsvn%2Fwww%2Fviewcvs%2Fimages%2Fcvsgraph_16x16.png
plugins.test/scmsvn/www/viewcvs/images/cvsgraph_32x32.png	5700 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fscmsvn%2Fwww%2Fviewcvs%2Fimages%2Fcvsgraph_32x32.png
plugins.test/scmsvn/www/viewcvs/images/down.png	5700 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fscmsvn%2Fwww%2Fviewcvs%2Fimages%2Fdown.png
plugins.test/scmsvn/www/viewcvs/images/logo.png	5700 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fscmsvn%2Fwww%2Fviewcvs%2Fimages%2Flogo.png
plugins.test/scmsvn/www/viewcvs/images/up.png	5700 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fscmsvn%2Fwww%2Fviewcvs%2Fimages%2Fup.png
plugins.test/scmsvn/www/viewcvs/index.html	5700 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fscmsvn%2Fwww%2Fviewcvs%2Findex.html
plugins.test/scmsvn/www/viewcvs/license-1.html	5700 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fscmsvn%2Fwww%2Fviewcvs%2Flicense-1.html
plugins.test/scmsvn/www/viewcvs/styles.css	5700 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fscmsvn%2Fwww%2Fviewcvs%2Fstyles.css
plugins.test/scmsvn/www/viewcvs/upgrading.html	5700 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fscmsvn%2Fwww%2Fviewcvs%2Fupgrading.html
plugins.test/scmsvn/www/viewcvs/who.html	5700 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fscmsvn%2Fwww%2Fviewcvs%2Fwho.html
plugins.test/svncommitemail	5700 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fsvncommitemail
plugins.test/svncommitemail/bin	5700 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fsvncommitemail%2Fbin
plugins.test/svncommitemail/bin/commit-email.pl	5700 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fsvncommitemail%2Fbin%2Fcommit-email.pl
plugins.test/svncommitemail/common	5700 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fsvncommitemail%2Fcommon
plugins.test/svncommitemail/common/SVNCommitEmailPlugin.class	5700 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fsvncommitemail%2Fcommon%2FSVNCommitEmailPlugin.class
plugins.test/svncommitemail/common/svncommitemail-init.php	5700 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fsvncommitemail%2Fcommon%2Fsvncommitemail-init.php
plugins.test/svncommitemail/include	5700 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fsvncommitemail%2Finclude
plugins.test/svncommitemail/include/SVNCommitEmailPlugin.class	5700 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fsvncommitemail%2Finclude%2FSVNCommitEmailPlugin.class
plugins.test/svncommitemail/include/svncommitemail-init.php	5700 at 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk%2Fplugins.test%2Fsvncommitemail%2Finclude%2Fsvncommitemail-init.php

Modified: bzr:revision-id:v4
   - 1 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1
2 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2
3 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:7
4 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:9
5 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:10
6 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:11
7 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:12
8 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:13
9 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:14
10 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:15
11 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:16
12 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:17
13 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:18
14 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:19
15 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:20
16 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:21
17 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:22
18 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:23
19 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:24
20 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:25
21 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:26
22 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:27
23 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:28
24 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:29
25 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:30
26 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:31
27 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:32
28 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:33
29 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:34
30 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:35
31 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:36
32 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:37
33 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:38
34 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:39
35 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:40
36 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:41
37 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:42
38 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:43
39 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:44
40 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:45
41 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:46
42 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:47
43 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:48
44 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:49
45 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:50
46 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:51
47 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:52
48 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:53
49 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:54
50 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:55
51 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:56
52 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:57
53 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:58
54 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:59
55 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:60
56 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:61
57 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:62
58 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:63
59 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:64
60 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:65
61 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:66
62 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:67
63 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:68
64 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:69
65 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:70
66 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:71
67 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:72
68 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:73
69 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:74
70 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:75
71 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:76
72 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:77
73 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:78
74 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:79
75 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:80
76 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:81
77 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:82
78 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:83
79 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:84
80 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:85
81 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:86
82 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:87
83 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:88
84 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:89
85 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:90
86 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:91
87 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:92
88 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:93
89 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:94
90 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:95
91 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:96
92 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:97
93 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:98
94 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:99
95 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:100
96 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:101
97 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:102
98 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:103
99 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:104
100 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:105
101 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:106
102 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:107
103 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:108
104 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:109
105 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:110
106 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:111
107 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:112
108 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:113
109 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:114
110 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:115
111 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:116
112 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:117
113 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:118
114 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:119
115 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:120
116 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:121
117 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:122
118 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:123
119 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:124
120 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:125
121 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:126
122 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:127
123 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:128
124 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:129
125 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:130
126 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:131
127 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:132
128 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:133
129 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:134
130 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:135
131 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:136
132 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:137
133 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:138
134 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:139
135 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:140
136 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:141
137 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:142
138 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:143
139 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:144
140 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:145
141 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:146
142 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:147
143 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:148
144 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:149
145 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:150
146 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:151
147 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:152
148 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:153
149 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:154
150 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:155
151 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:156
152 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:157
153 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:158
154 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:159
155 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:160
156 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:161
157 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:162
158 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:163
159 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:164
160 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:165
161 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:166
162 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:167
163 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:168
164 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:169
165 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:170
166 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:172
167 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:173
168 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:174
169 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:175
170 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:176
171 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:180
172 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:184
173 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:186
174 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:187
175 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:188
176 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:189
177 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:190
178 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:191
179 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:192
180 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:193
181 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:194
182 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:195
183 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:196
184 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:197
185 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:198
186 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:199
187 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:200
188 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:202
189 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:203
190 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:204
191 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:205
192 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:206
193 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:207
194 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:208
195 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:209
196 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:210
197 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:211
198 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:212
199 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:213
200 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:214
201 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:215
202 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:216
203 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:217
204 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:218
205 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:219
206 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:220
207 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:221
208 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:222
209 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:223
210 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:224
211 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:225
212 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:226
213 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:227
214 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:228
215 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:229
216 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:230
217 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:231
218 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:232
219 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:233
220 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:234
221 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:235
222 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:236
223 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:237
224 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:238
225 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:241
226 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:250
227 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:253
228 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:254
229 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:255
230 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:256
231 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:258
232 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:263
233 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:264
234 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:265
235 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:266
236 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:268
237 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:269
238 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:271
239 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:275
240 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:276
241 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:277
242 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:278
243 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:288
244 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:289
245 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:290
246 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:291
247 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:292
248 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:293
249 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:294
250 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:295
251 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:296
252 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:297
253 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:298
254 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:310
255 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:311
256 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:313
257 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:315
258 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:323
259 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:324
260 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:325
261 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:326
262 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:327
263 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:328
264 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:329
265 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:331
266 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:336
267 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:337
268 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:338
269 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:339
270 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:340
271 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:341
272 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:343
273 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:359
274 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:360
275 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:361
276 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:362
277 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:363
278 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:364
279 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:365
280 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:369
281 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:371
282 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:375
283 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:377
284 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:378
285 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:379
286 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:380
287 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:384
288 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:386
289 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:387
290 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:388
291 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:390
292 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:391
293 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:392
294 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:394
295 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:395
296 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:406
297 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:407
298 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:408
299 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:409
300 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:410
301 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:411
302 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:412
303 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:413
304 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:414
305 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:415
306 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:416
307 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:417
308 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:418
309 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:419
310 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:420
311 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:421
312 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:422
313 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:427
314 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:428
315 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:429
316 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:435
317 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:436
318 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:437
319 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:438
320 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:442
321 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:443
322 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:444
323 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:448
324 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:449
325 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:450
326 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:451
327 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:452
328 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:453
329 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:454
330 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:455
331 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:456
332 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:457
333 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:458
334 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:459
335 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:460
336 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:461
337 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:463
338 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:464
339 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:465
340 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:466
341 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:467
342 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:468
343 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:476
344 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:477
345 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:478
346 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:479
347 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:480
348 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:481
349 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:488
350 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:497
351 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:498
352 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:499
353 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:500
354 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:501
355 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:502
356 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:503
357 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:504
358 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:505
359 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:506
360 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:507
361 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:508
362 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:509
363 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:510
364 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:511
365 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:512
366 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:513
367 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:514
368 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:515
369 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:516
370 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:517
371 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:518
372 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:521
373 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:522
374 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:523
375 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:528
376 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:529
377 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:530
378 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:532
379 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:533
380 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:537
381 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:538
382 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:539
383 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:540
384 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:541
385 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:542
386 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:543
387 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:544
388 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:545
389 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:546
390 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:547
391 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:548
392 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:550
393 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:551
394 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:562
395 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:565
396 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:566
397 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:567
398 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:570
399 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:571
400 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:572
401 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:574
402 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:575
403 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:576
404 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:577
405 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:578
406 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:579
407 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:580
408 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:581
409 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:582
410 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:583
411 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:584
412 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:585
413 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:586
414 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:587
415 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:588
416 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:589
417 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:590
418 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:591
419 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:592
420 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:593
421 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:594
422 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:595
423 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:596
424 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:597
425 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:598
426 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:599
427 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:600
428 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:601
429 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:602
430 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:603
431 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:604
432 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:605
433 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:606
434 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:607
435 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:608
436 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:609
437 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:610
438 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:611
439 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:612
440 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:613
441 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:614
442 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:615
443 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:616
444 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:617
445 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:618
446 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:619
447 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:620
448 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:621
449 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:622
450 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:623
451 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:624
452 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:625
453 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:626
454 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:627
455 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:628
456 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:629
457 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:632
458 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:633
459 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:634
460 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:635
461 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:636
462 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:637
463 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:638
464 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:639
465 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:640
466 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:641
467 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:642
468 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:643
469 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:644
470 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:645
471 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:646
472 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:647
473 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:648
474 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:649
475 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:650
476 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:651
477 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:652
478 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:653
479 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:654
480 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:655
481 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:656
482 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:657
483 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:658
484 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:659
485 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:660
486 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:661
487 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:662
488 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:663
489 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:664
490 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:665
491 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:666
492 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:667
493 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:668
494 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:669
495 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:670
496 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:671
497 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:672
498 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:673
499 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:674
500 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:675
501 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:676
502 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:677
503 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:678
504 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:680
505 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:681
506 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:682
507 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:683
508 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:684
509 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:685
510 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:686
511 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:687
512 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:688
513 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:689
514 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:690
515 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:691
516 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:692
517 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:693
518 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:694
519 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:695
520 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:696
521 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:697
522 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:698
523 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:699
524 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:700
525 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:701
526 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:702
527 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:703
528 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:704
529 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:705
530 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:706
531 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:707
532 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:708
533 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:712
534 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:713
535 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:714
536 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:715
537 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:716
538 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:717
539 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:718
540 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:719
541 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:720
542 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:721
543 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:722
544 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:723
545 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:725
546 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:726
547 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:727
548 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:728
549 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:729
550 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:730
551 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:731
552 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:732
553 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:734
554 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:761
555 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:762
556 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:763
557 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:766
558 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:767
559 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:768
560 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:769
561 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:770
562 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:771
563 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:772
564 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:773
565 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:774
566 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:775
567 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:776
568 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:777
569 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:778
570 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:779
571 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:780
572 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:785
573 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:786
574 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:787
575 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:788
576 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:792
577 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:793
578 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:794
579 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:795
580 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:796
581 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:798
582 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:804
583 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:805
584 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:806
585 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:807
586 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:809
587 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:814
588 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:816
589 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:817
590 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:818
591 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:824
592 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:825
593 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:827
594 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:828
595 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:830
596 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:840
597 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:841
598 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:842
599 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:843
600 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:844
601 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:848
602 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:849
603 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:850
604 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:851
605 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:852
606 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:853
607 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:854
608 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:855
609 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:856
610 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:857
611 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:858
612 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:861
613 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:862
614 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:863
615 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:864
616 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:865
617 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:866
618 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:867
619 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:868
620 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:869
621 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:870
622 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:871
623 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:872
624 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:873
625 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:874
626 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:875
627 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:876
628 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:877
629 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:878
630 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:879
631 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:880
632 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:881
633 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:882
634 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:883
635 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:884
636 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:885
637 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:886
638 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:887
639 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:888
640 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:889
641 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:890
642 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:891
643 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:892
644 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:893
645 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:894
646 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:895
647 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:896
648 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:897
649 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:898
650 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:899
651 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:900
652 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:902
653 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:903
654 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:904
655 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:907
656 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:908
657 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:909
658 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:910
659 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:911
660 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:912
661 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:913
662 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:914
663 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:915
664 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:916
665 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:917
666 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:918
667 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:919
668 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:920
669 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:921
670 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:922
671 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:923
672 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:924
673 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:925
674 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:927
675 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:928
676 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:929
677 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:930
678 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:931
679 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:932
680 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:933
681 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:934
682 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:935
683 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:936
684 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:937
685 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:938
686 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:940
687 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:941
688 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:942
689 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:943
690 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:944
691 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:945
692 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:946
693 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:947
694 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:948
695 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:949
696 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:950
697 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:951
698 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:952
699 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:953
700 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:954
701 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:955
702 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:956
703 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:957
704 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:958
705 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:959
706 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:960
707 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:961
708 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:967
709 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:968
710 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:973
711 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:974
712 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:975
713 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:977
714 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:978
715 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:979
716 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:980
717 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:981
718 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:982
719 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:985
720 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:987
721 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:989
722 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:991
723 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:994
724 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1019
725 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1033
726 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1034
727 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1037
728 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1040
729 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1052
730 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1054
731 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1055
732 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1062
733 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1070
734 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1071
735 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1074
736 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1081
737 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1082
738 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1084
739 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1087
740 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1088
741 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1091
742 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1093
743 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1106
744 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1108
745 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1129
746 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1167
747 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1221
748 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1223
749 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1228
750 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1229
751 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1230
752 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1231
753 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1232
754 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1233
755 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1234
756 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1235
757 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1236
758 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1237
759 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1238
760 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1239
761 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1240
762 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1241
763 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1242
764 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1243
765 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1244
766 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1245
767 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1246
768 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1247
769 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1248
770 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1249
771 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1250
772 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1251
773 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1252
774 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1253
775 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1254
776 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1255
777 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1256
778 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1257
779 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1258
780 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1259
781 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1260
782 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1261
783 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1262
784 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1263
785 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1264
786 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1265
787 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1266
788 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1267
789 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1268
790 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1269
791 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1270
792 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1271
793 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1272
794 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1273
795 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1274
796 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1275
797 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1276
798 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1277
799 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1278
800 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1279
801 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1280
802 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1281
803 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1282
804 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1283
805 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1284
806 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1285
807 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1286
808 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1287
809 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1288
810 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1289
811 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1290
812 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1291
813 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1292
814 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1293
815 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1294
816 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1295
817 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1296
818 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1297
819 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1298
820 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1299
821 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1300
822 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1301
823 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1302
824 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1303
825 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1304
826 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1305
827 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1306
828 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1307
829 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1308
830 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1309
831 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1310
832 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1311
833 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1312
834 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1313
835 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1314
836 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1315
837 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1316
838 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1317
839 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1318
840 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1319
841 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1320
842 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1321
843 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1322
844 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1323
845 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1324
846 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1325
847 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1326
848 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1327
849 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1328
850 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1329
851 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1330
852 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1331
853 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1332
854 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1333
855 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1334
856 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1335
857 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1336
858 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1337
859 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1338
860 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1339
861 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1340
862 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1341
863 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1342
864 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1343
865 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1344
866 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1345
867 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1346
868 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1347
869 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1348
870 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1349
871 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1350
872 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1351
873 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1352
874 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1353
875 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1354
876 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1355
877 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1356
878 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1357
879 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1358
880 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1359
881 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1360
882 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1361
883 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1362
884 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1363
885 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1364
886 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1365
887 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1366
888 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1367
889 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1368
890 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1369
891 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1370
892 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1371
893 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1372
894 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1373
895 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1374
896 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1375
897 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1376
898 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1377
899 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1378
900 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1379
901 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1380
902 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1381
903 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1382
904 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1383
905 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1384
906 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1385
907 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1386
908 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1387
909 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1388
910 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1389
911 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1390
912 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1391
913 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1392
914 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1393
915 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1394
916 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1395
917 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1396
918 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1397
919 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1398
920 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1399
921 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1400
922 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1401
923 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1402
924 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1403
925 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1404
926 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1405
927 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1406
928 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1407
929 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1408
930 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1409
931 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1410
932 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1411
933 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1412
934 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1413
935 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1414
936 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1415
937 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1416
938 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1417
939 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1418
940 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1419
941 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1420
942 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1421
943 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1422
944 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1423
945 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1424
946 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1425
947 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1426
948 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1427
949 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1428
950 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1429
951 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1430
952 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1431
953 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1432
954 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1433
955 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1434
956 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1435
957 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1436
958 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1437
959 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1438
960 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1439
961 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1440
962 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1441
963 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1442
964 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1443
965 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1444
966 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1445
967 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1446
968 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1447
969 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1448
970 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1449
971 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1450
972 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1451
973 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1452
974 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1453
975 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1454
976 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1455
977 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1456
978 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1457
979 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1458
980 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1459
981 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1460
982 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1461
983 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1462
984 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1463
985 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1464
986 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1465
987 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1466
988 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1467
989 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1468
990 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1469
991 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1470
992 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1471
993 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1472
994 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1473
995 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1474
996 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1475
997 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1476
998 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1477
999 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1478
1000 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1479
1001 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1480
1002 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1481
1003 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1482
1004 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1483
1005 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1484
1006 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1485
1007 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1486
1008 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1487
1009 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1488
1010 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1489
1011 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1490
1012 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1491
1013 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1492
1014 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1493
1015 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1494
1016 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1495
1017 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1496
1018 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1497
1019 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1498
1020 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1499
1021 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1500
1022 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1501
1023 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1502
1024 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1503
1025 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1504
1026 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1505
1027 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1506
1028 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1507
1029 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1508
1030 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1509
1031 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1510
1032 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1511
1033 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1512
1034 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1513
1035 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1514
1036 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1515
1037 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1516
1038 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1517
1039 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1518
1040 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1519
1041 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1520
1042 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1521
1043 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1522
1044 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1523
1045 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1524
1046 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1525
1047 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1526
1048 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1527
1049 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1528
1050 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1529
1051 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1530
1052 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1531
1053 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1532
1054 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1533
1055 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1534
1056 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1535
1057 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1536
1058 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1537
1059 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1538
1060 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1539
1061 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1540
1062 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1541
1063 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1542
1064 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1543
1065 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1544
1066 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1545
1067 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1546
1068 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1547
1069 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1548
1070 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1549
1071 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1550
1072 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1551
1073 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1552
1074 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1553
1075 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1554
1076 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1555
1077 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1556
1078 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1557
1079 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1558
1080 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1559
1081 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1560
1082 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1561
1083 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1562
1084 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1563
1085 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1564
1086 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1565
1087 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1566
1088 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1567
1089 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1568
1090 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1569
1091 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1570
1092 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1571
1093 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1572
1094 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1573
1095 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1574
1096 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1575
1097 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1576
1098 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1577
1099 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1578
1100 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1579
1101 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1580
1102 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1581
1103 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1582
1104 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1583
1105 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1584
1106 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1585
1107 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1586
1108 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1587
1109 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1588
1110 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1589
1111 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1590
1112 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1591
1113 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1592
1114 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1593
1115 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1594
1116 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1595
1117 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1596
1118 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1597
1119 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1598
1120 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1599
1121 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1600
1122 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1601
1123 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1602
1124 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1603
1125 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1604
1126 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1605
1127 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1606
1128 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1607
1129 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1608
1130 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1609
1131 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1610
1132 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1611
1133 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1612
1134 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1613
1135 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1614
1136 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1615
1137 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1616
1138 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1617
1139 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1618
1140 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1619
1141 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1620
1142 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1621
1143 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1622
1144 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1623
1145 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1624
1146 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1625
1147 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1626
1148 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1627
1149 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1628
1150 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1629
1151 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1630
1152 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1631
1153 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1632
1154 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1633
1155 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1634
1156 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1635
1157 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1636
1158 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1637
1159 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1638
1160 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1639
1161 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1640
1162 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1641
1163 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1642
1164 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1643
1165 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1644
1166 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1645
1167 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1646
1168 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1647
1169 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1648
1170 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1649
1171 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1650
1172 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1651
1173 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1652
1174 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1653
1175 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1654
1176 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1655
1177 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1656
1178 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1657
1179 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1658
1180 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1659
1181 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1660
1182 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1661
1183 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1662
1184 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1663
1185 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1664
1186 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1665
1187 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1666
1188 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1667
1189 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1668
1190 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1669
1191 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1670
1192 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1671
1193 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1672
1194 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1673
1195 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1674
1196 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1675
1197 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1676
1198 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1677
1199 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1678
1200 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1679
1201 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1680
1202 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1681
1203 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1682
1204 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1683
1205 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1684
1206 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1685
1207 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1686
1208 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1687
1209 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1688
1210 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1689
1211 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1690
1212 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1691
1213 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1692
1214 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1693
1215 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1694
1216 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1695
1217 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1696
1218 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1697
1219 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1698
1220 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1699
1221 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1700
1222 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1701
1223 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1702
1224 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1703
1225 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1704
1226 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1705
1227 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1706
1228 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1707
1229 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1708
1230 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1709
1231 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1710
1232 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1711
1233 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1712
1234 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1713
1235 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1714
1236 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1715
1237 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1716
1238 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1717
1239 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1718
1240 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1719
1241 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1720
1242 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1721
1243 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1722
1244 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1723
1245 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1724
1246 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1725
1247 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1726
1248 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1727
1249 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1728
1250 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1729
1251 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1730
1252 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1731
1253 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1732
1254 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1733
1255 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1734
1256 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1735
1257 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1736
1258 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1737
1259 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1738
1260 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1739
1261 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1740
1262 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1741
1263 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1742
1264 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1743
1265 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1744
1266 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1745
1267 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1746
1268 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1747
1269 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1748
1270 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1749
1271 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1750
1272 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1751
1273 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1752
1274 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1753
1275 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1754
1276 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1755
1277 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1756
1278 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1757
1279 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1758
1280 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1759
1281 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1760
1282 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1761
1283 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1762
1284 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1763
1285 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1764
1286 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1765
1287 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1766
1288 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1767
1289 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1768
1290 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1769
1291 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1770
1292 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1771
1293 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1772
1294 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1773
1295 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1774
1296 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1775
1297 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1776
1298 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1777
1299 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1778
1300 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1779
1301 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1780
1302 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1781
1303 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1782
1304 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1783
1305 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1784
1306 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1785
1307 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1786
1308 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1787
1309 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1788
1310 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1789
1311 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1790
1312 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1791
1313 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1792
1314 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1793
1315 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1794
1316 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1795
1317 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1796
1318 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1797
1319 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1798
1320 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1799
1321 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1800
1322 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1801
1323 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1802
1324 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1803
1325 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1804
1326 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1805
1327 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1806
1328 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1807
1329 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1808
1330 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1809
1331 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1810
1332 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1811
1333 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1812
1334 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1813
1335 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1814
1336 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1815
1337 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1816
1338 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1817
1339 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1818
1340 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1819
1341 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1820
1342 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1821
1343 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1822
1344 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1823
1345 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1824
1346 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1825
1347 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1826
1348 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1827
1349 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1828
1350 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1829
1351 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1830
1352 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1831
1353 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1832
1354 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1833
1355 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1834
1356 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1835
1357 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1836
1358 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1837
1359 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1838
1360 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1839
1361 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1840
1362 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1841
1363 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1842
1364 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1843
1365 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1844
1366 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1845
1367 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1846
1368 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1847
1369 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1848
1370 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1849
1371 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1850
1372 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1851
1373 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1852
1374 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1853
1375 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1854
1376 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1855
1377 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1856
1378 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1857
1379 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1858
1380 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1859
1381 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1860
1382 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1861
1383 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1862
1384 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1863
1385 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1864
1386 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1865
1387 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1866
1388 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1867
1389 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1869
1390 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1870
1391 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1871
1392 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1872
1393 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1873
1394 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1874
1395 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1875
1396 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1876
1397 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1877
1398 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1878
1399 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1879
1400 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1880
1401 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1881
1402 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1882
1403 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1883
1404 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1884
1405 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1885
1406 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1886
1407 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1887
1408 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1888
1409 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1889
1410 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1890
1411 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1891
1412 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1892
1413 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1893
1414 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1894
1415 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1895
1416 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1896
1417 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1897
1418 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1898
1419 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1899
1420 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1900
1421 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1901
1422 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1902
1423 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1903
1424 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1904
1425 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1905
1426 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1906
1427 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1907
1428 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1908
1429 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1909
1430 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1910
1431 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1911
1432 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1912
1433 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1913
1434 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1914
1435 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1915
1436 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1916
1437 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1917
1438 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1918
1439 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1919
1440 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1920
1441 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1921
1442 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1922
1443 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1923
1444 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1924
1445 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1925
1446 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1926
1447 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1927
1448 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1928
1449 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1929
1450 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1930
1451 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1931
1452 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1932
1453 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1933
1454 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1934
1455 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1935
1456 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1936
1457 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1937
1458 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1938
1459 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1939
1460 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1940
1461 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1941
1462 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1942
1463 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1943
1464 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1944
1465 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1945
1466 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1946
1467 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1947
1468 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1948
1469 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1949
1470 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1950
1471 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1951
1472 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1952
1473 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1953
1474 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1954
1475 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1955
1476 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1956
1477 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1957
1478 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1958
1479 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1959
1480 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1960
1481 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1961
1482 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1962
1483 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1963
1484 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1964
1485 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1965
1486 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1966
1487 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1967
1488 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1968
1489 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1969
1490 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1970
1491 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1971
1492 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1972
1493 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1973
1494 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1974
1495 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1975
1496 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1976
1497 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1977
1498 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1978
1499 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1979
1500 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1980
1501 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1981
1502 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1982
1503 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1983
1504 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1984
1505 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1985
1506 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1986
1507 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1987
1508 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1988
1509 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1989
1510 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1990
1511 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1991
1512 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1992
1513 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1993
1514 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1994
1515 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1995
1516 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1996
1517 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1997
1518 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1998
1519 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1999
1520 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2000
1521 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2001
1522 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2002
1523 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2003
1524 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2004
1525 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2005
1526 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2007
1527 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2008
1528 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2009
1529 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2010
1530 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2011
1531 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2012
1532 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2013
1533 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2014
1534 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2015
1535 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2016
1536 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2017
1537 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2018
1538 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2019
1539 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2020
1540 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2021
1541 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2022
1542 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2023
1543 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2024
1544 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2025
1545 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2026
1546 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2027
1547 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2028
1548 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2029
1549 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2030
1550 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2031
1551 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2032
1552 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2033
1553 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2034
1554 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2035
1555 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2036
1556 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2037
1557 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2038
1558 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2039
1559 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2040
1560 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2041
1561 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2042
1562 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2043
1563 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2044
1564 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2045
1565 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2046
1566 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2047
1567 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2048
1568 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2049
1569 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2050
1570 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2051
1571 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2052
1572 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2053
1573 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2054
1574 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2055
1575 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2056
1576 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2057
1577 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2058
1578 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2060
1579 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2062
1580 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2063
1581 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2064
1582 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2065
1583 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2066
1584 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2067
1585 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2068
1586 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2069
1587 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2070
1588 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2071
1589 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2072
1590 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2073
1591 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2074
1592 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2075
1593 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2076
1594 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2077
1595 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2078
1596 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2079
1597 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2080
1598 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2081
1599 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2082
1600 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2083
1601 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2084
1602 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2085
1603 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2086
1604 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2087
1605 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2088
1606 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2089
1607 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2090
1608 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2091
1609 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2092
1610 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2093
1611 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2094
1612 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2095
1613 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2096
1614 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2097
1615 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2098
1616 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2099
1617 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2100
1618 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2101
1619 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2102
1620 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2103
1621 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2104
1622 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2105
1623 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2106
1624 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2107
1625 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2108
1626 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2109
1627 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2110
1628 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2111
1629 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2112
1630 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2113
1631 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2114
1632 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2115
1633 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2116
1634 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2117
1635 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2118
1636 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2119
1637 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2120
1638 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2121
1639 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2122
1640 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2123
1641 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2124
1642 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2125
1643 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2126
1644 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2127
1645 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2128
1646 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2129
1647 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2130
1648 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2131
1649 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2132
1650 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2133
1651 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2134
1652 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2135
1653 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2136
1654 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2137
1655 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2138
1656 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2139
1657 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2140
1658 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2141
1659 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2142
1660 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2143
1661 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2144
1662 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2145
1663 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2146
1664 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2147
1665 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2148
1666 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2149
1667 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2150
1668 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2151
1669 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2152
1670 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2153
1671 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2155
1672 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2157
1673 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2158
1674 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2160
1675 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2161
1676 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2162
1677 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2163
1678 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2164
1679 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2165
1680 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2166
1681 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2167
1682 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2168
1683 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2169
1684 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2170
1685 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2171
1686 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2172
1687 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2173
1688 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2174
1689 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2175
1690 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2176
1691 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2177
1692 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2178
1693 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2179
1694 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2180
1695 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2182
1696 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2183
1697 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2184
1698 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2185
1699 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2186
1700 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2187
1701 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2188
1702 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2189
1703 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2191
1704 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2192
1705 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2193
1706 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2194
1707 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2195
1708 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2196
1709 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2197
1710 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2198
1711 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2199
1712 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2200
1713 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2201
1714 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2202
1715 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2203
1716 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2204
1717 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2205
1718 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2206
1719 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2207
1720 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2208
1721 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2209
1722 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2210
1723 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2211
1724 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2212
1725 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2213
1726 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2214
1727 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2215
1728 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2216
1729 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2217
1730 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2218
1731 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2219
1732 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2220
1733 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2221
1734 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2222
1735 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2223
1736 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2224
1737 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2225
1738 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2226
1739 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2227
1740 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2228
1741 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2229
1742 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2230
1743 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2231
1744 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2232
1745 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2233
1746 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2234
1747 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2235
1748 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2236
1749 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2237
1750 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2238
1751 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2239
1752 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2240
1753 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2241
1754 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2242
1755 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2243
1756 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2244
1757 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2245
1758 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2246
1759 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2247
1760 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2248
1761 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2249
1762 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2250
1763 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2251
1764 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2252
1765 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2253
1766 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2254
1767 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2255
1768 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2256
1769 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2257
1770 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2258
1771 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2260
1772 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2261
1773 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2262
1774 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2263
1775 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2264
1776 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2265
1777 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2266
1778 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2268
1779 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2269
1780 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2270
1781 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2271
1782 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2273
1783 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2274
1784 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2275
1785 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2276
1786 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2277
1787 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2278
1788 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2279
1789 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2280
1790 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2281
1791 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2282
1792 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2283
1793 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2284
1794 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2285
1795 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2286
1796 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2287
1797 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2288
1798 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2289
1799 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2290
1800 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2291
1801 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2292
1802 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2293
1803 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2294
1804 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2295
1805 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2296
1806 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2297
1807 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2298
1808 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2299
1809 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2300
1810 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2301
1811 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2302
1812 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2303
1813 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2304
1814 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2305
1815 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2306
1816 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2307
1817 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2308
1818 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2309
1819 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2310
1820 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2311
1821 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2312
1822 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2314
1823 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2315
1824 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2316
1825 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2317
1826 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2318
1827 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2319
1828 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2320
1829 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2321
1830 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2322
1831 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2323
1832 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2324
1833 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2325
1834 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2326
1835 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2327
1836 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2328
1837 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2329
1838 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2330
1839 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2331
1840 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2332
1841 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2333
1842 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2334
1843 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2335
1844 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2336
1845 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2337
1846 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2338
1847 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2339
1848 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2340
1849 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2341
1850 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2342
1851 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2343
1852 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2344
1853 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2345
1854 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2346
1855 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2347
1856 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2348
1857 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2349
1858 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2350
1859 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2351
1860 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2353
1861 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2354
1862 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2355
1863 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2356
1864 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2358
1865 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2359
1866 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2360
1867 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2361
1868 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2362
1869 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2363
1870 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2364
1871 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2365
1872 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2366
1873 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2367
1874 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2368
1875 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2369
1876 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2370
1877 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2371
1878 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2372
1879 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2373
1880 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2374
1881 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2375
1882 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2376
1883 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2377
1884 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2378
1885 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2379
1886 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2380
1887 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2381
1888 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2382
1889 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2383
1890 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2384
1891 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2385
1892 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2386
1893 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2387
1894 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2388
1895 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2389
1896 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2390
1897 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2393
1898 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2394
1899 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2395
1900 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2397
1901 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2398
1902 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2399
1903 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2400
1904 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2401
1905 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2402
1906 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2403
1907 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2404
1908 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2405
1909 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2409
1910 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2410
1911 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2411
1912 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2412
1913 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2413
1914 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2414
1915 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2415
1916 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2416
1917 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2417
1918 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2418
1919 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2419
1920 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2420
1921 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2421
1922 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2422
1923 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2423
1924 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2424
1925 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2425
1926 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2426
1927 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2427
1928 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2428
1929 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2432
1930 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2438
1931 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2439
1932 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2440
1933 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2442
1934 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2445
1935 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2447
1936 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2448
1937 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2449
1938 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2450
1939 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2451
1940 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2452
1941 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2453
1942 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2454
1943 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2455
1944 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2456
1945 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2457
1946 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2463
1947 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2465
1948 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2466
1949 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2467
1950 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2468
1951 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2469
1952 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2470
1953 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2471
1954 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2472
1955 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2473
1956 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2474
1957 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2475
1958 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2476
1959 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2477
1960 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2478
1961 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2479
1962 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2480
1963 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2481
1964 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2482
1965 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2483
1966 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2484
1967 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2485
1968 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2486
1969 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2487
1970 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2488
1971 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2489
1972 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2490
1973 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2491
1974 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2492
1975 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2493
1976 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2494
1977 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2495
1978 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2496
1979 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2497
1980 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2498
1981 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2499
1982 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2500
1983 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2501
1984 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2502
1985 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2503
1986 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2504
1987 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2505
1988 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2507
1989 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2508
1990 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2509
1991 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2510
1992 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2511
1993 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2512
1994 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2513
1995 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2514
1996 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2515
1997 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2516
1998 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2517
1999 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2518
2000 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2519
2001 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2520
2002 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2521
2003 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2523
2004 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2524
2005 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2525
2006 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2526
2007 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2527
2008 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2528
2009 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2529
2010 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2530
2011 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2531
2012 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2532
2013 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2533
2014 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2534
2015 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2535
2016 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2536
2017 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2537
2018 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2538
2019 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2539
2020 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2540
2021 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2541
2022 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2542
2023 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2543
2024 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2546
2025 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2547
2026 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2548
2027 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2549
2028 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2550
2029 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2551
2030 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2552
2031 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2553
2032 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2563
2033 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2564
2034 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2569
2035 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2570
2036 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2571
2037 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2572
2038 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2573
2039 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2574
2040 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2575
2041 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2576
2042 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2577
2043 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2578
2044 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2579
2045 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2580
2046 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2581
2047 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2582
2048 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2583
2049 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2584
2050 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2585
2051 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2586
2052 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2587
2053 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2588
2054 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2589
2055 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2590
2056 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2591
2057 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2592
2058 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2593
2059 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2594
2060 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2595
2061 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2596
2062 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2597
2063 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2598
2064 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2599
2065 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2600
2066 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2601
2067 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2602
2068 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2603
2069 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2604
2070 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2605
2071 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2608
2072 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2609
2073 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2614
2074 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2615
2075 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2616
2076 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2617
2077 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2618
2078 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2619
2079 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2620
2080 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2621
2081 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2622
2082 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2623
2083 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2624
2084 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2625
2085 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2626
2086 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2627
2087 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2628
2088 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2629
2089 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2630
2090 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2631
2091 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2632
2092 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2633
2093 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2634
2094 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2635
2095 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2636
2096 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2637
2097 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2638
2098 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2639
2099 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2640
2100 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2641
2101 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2642
2102 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2643
2103 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2644
2104 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2645
2105 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2646
2106 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2647
2107 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2648
2108 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2649
2109 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2650
2110 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2651
2111 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2652
2112 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2653
2113 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2654
2114 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2655
2115 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2656
2116 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2657
2117 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2658
2118 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2659
2119 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2660
2120 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2661
2121 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2666
2122 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2667
2123 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2671
2124 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2676
2125 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2677
2126 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2678
2127 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2679
2128 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2680
2129 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2681
2130 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2682
2131 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2683
2132 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2684
2133 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2685
2134 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2686
2135 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2687
2136 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2688
2137 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2689
2138 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2690
2139 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2691
2140 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2692
2141 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2693
2142 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2694
2143 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2695
2144 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2696
2145 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2697
2146 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2698
2147 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2699
2148 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2700
2149 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2701
2150 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2702
2151 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2703
2152 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2704
2153 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2705
2154 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2706
2155 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2707
2156 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2714
2157 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2715
2158 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2716
2159 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2717
2160 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2718
2161 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2719
2162 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2720
2163 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2721
2164 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2725
2165 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2726
2166 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2727
2167 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2728
2168 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2730
2169 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2733
2170 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2734
2171 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2735
2172 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2736
2173 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2739
2174 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2741
2175 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2742
2176 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2743
2177 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2744
2178 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2747
2179 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2748
2180 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2750
2181 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2751
2182 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2752
2183 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2753
2184 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2754
2185 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2755
2186 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2756
2187 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2757
2188 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2758
2189 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2759
2190 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2760
2191 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2761
2192 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2762
2193 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2763
2194 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2764
2195 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2765
2196 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2766
2197 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2767
2198 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2768
2199 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2769
2200 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2770
2201 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2771
2202 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2772
2203 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2773
2204 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2774
2205 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2775
2206 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2776
2207 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2777
2208 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2778
2209 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2779
2210 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2780
2211 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2781
2212 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2782
2213 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2783
2214 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2784
2215 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2785
2216 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2786
2217 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2787
2218 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2788
2219 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2789
2220 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2790
2221 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2791
2222 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2792
2223 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2793
2224 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2794
2225 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2795
2226 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2796
2227 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2797
2228 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2798
2229 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2799
2230 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2800
2231 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2801
2232 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2802
2233 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2803
2234 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2804
2235 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2805
2236 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2806
2237 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2807
2238 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2808
2239 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2811
2240 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2812
2241 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2813
2242 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2814
2243 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2815
2244 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2816
2245 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2817
2246 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2818
2247 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2819
2248 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2820
2249 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2821
2250 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2822
2251 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2823
2252 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2824
2253 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2825
2254 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2826
2255 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2827
2256 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2828
2257 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2829
2258 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2830
2259 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2831
2260 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2832
2261 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2833
2262 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2834
2263 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2835
2264 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2836
2265 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2837
2266 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2838
2267 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2839
2268 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2840
2269 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2841
2270 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2842
2271 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2843
2272 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2844
2273 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2845
2274 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2846
2275 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2847
2276 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2848
2277 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2849
2278 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2850
2279 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2851
2280 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2852
2281 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2854
2282 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2855
2283 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2856
2284 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2857
2285 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2858
2286 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2859
2287 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2860
2288 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2861
2289 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2862
2290 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2863
2291 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2864
2292 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2865
2293 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2866
2294 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2867
2295 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2869
2296 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2871
2297 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2872
2298 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2873
2299 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2874
2300 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2875
2301 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2876
2302 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2877
2303 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2878
2304 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2879
2305 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2880
2306 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2881
2307 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2882
2308 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2883
2309 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2884
2310 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2885
2311 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2886
2312 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2887
2313 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2889
2314 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2890
2315 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2891
2316 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2892
2317 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2893
2318 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2898
2319 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2903
2320 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2906
2321 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2907
2322 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2908
2323 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2909
2324 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2911
2325 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2912
2326 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2913
2327 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2914
2328 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2915
2329 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2916
2330 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2917
2331 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2918
2332 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2919
2333 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2920
2334 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2921
2335 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2922
2336 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2923
2337 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2924
2338 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2925
2339 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2926
2340 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2927
2341 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2928
2342 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2929
2343 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2930
2344 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2931
2345 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2932
2346 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2933
2347 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2934
2348 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2935
2349 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2936
2350 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2937
2351 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2938
2352 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2939
2353 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2940
2354 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2941
2355 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2942
2356 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2943
2357 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2944
2358 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2945
2359 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2946
2360 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2947
2361 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2948
2362 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2949
2363 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2950
2364 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2951
2365 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2952
2366 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2953
2367 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2954
2368 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2955
2369 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2956
2370 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2957
2371 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2958
2372 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2959
2373 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2960
2374 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2961
2375 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2962
2376 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2963
2377 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2964
2378 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2965
2379 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2966
2380 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2967
2381 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2968
2382 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2969
2383 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2970
2384 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2971
2385 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2972
2386 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2973
2387 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2974
2388 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2975
2389 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2976
2390 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2977
2391 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2978
2392 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2979
2393 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2980
2394 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2981
2395 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2982
2396 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2983
2397 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2984
2398 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2985
2399 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2986
2400 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2987
2401 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2988
2402 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2989
2403 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2990
2404 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2991
2405 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2992
2406 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2993
2407 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2994
2408 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2995
2409 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2996
2410 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2997
2411 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2998
2412 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2999
2413 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3000
2414 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3001
2415 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3002
2416 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3003
2417 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3004
2418 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3005
2419 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3006
2420 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3007
2421 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3008
2422 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3009
2423 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3010
2424 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3011
2425 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3012
2426 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3013
2427 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3014
2428 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3015
2429 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3016
2430 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3017
2431 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3018
2432 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3019
2433 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3020
2434 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3021
2435 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3022
2436 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3023
2437 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3024
2438 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3025
2439 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3026
2440 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3027
2441 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3028
2442 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3029
2443 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3030
2444 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3031
2445 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3032
2446 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3033
2447 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3034
2448 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3038
2449 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3039
2450 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3040
2451 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3041
2452 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3042
2453 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3043
2454 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3044
2455 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3045
2456 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3046
2457 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3047
2458 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3055
2459 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3056
2460 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3057
2461 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3058
2462 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3059
2463 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3060
2464 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3061
2465 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3062
2466 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3063
2467 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3064
2468 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3065
2469 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3066
2470 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3067
2471 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3068
2472 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3069
2473 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3070
2474 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3071
2475 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3072
2476 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3073
2477 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3074
2478 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3075
2479 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3076
2480 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3077
2481 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3078
2482 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3079
2483 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3080
2484 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3081
2485 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3082
2486 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3083
2487 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3084
2488 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3085
2489 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3086
2490 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3087
2491 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3088
2492 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3089
2493 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3090
2494 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3091
2495 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3092
2496 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3093
2497 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3094
2498 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3095
2499 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3096
2500 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3097
2501 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3098
2502 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3099
2503 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3100
2504 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3101
2505 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3102
2506 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3103
2507 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3104
2508 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3105
2509 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3106
2510 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3107
2511 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3108
2512 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3109
2513 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3110
2514 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3111
2515 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3112
2516 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3113
2517 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3114
2518 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3115
2519 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3116
2520 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3117
2521 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3118
2522 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3119
2523 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3120
2524 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3121
2525 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3122
2526 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3123
2527 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3124
2528 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3125
2529 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3126
2530 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3127
2531 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3128
2532 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3129
2533 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3130
2534 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3131
2535 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3132
2536 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3133
2537 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3134
2538 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3135
2539 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3136
2540 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3137
2541 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3138
2542 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3139
2543 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3140
2544 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3141
2545 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3142
2546 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3143
2547 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3144
2548 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3145
2549 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3146
2550 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3147
2551 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3148
2552 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3149
2553 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3150
2554 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3151
2555 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3152
2556 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3153
2557 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3154
2558 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3155
2559 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3156
2560 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3157
2561 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3158
2562 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3159
2563 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3160
2564 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3161
2565 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3162
2566 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3163
2567 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3164
2568 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3165
2569 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3166
2570 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3167
2571 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3168
2572 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3169
2573 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3170
2574 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3171
2575 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3172
2576 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3173
2577 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3174
2578 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3175
2579 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3176
2580 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3177
2581 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3178
2582 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3179
2583 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3180
2584 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3181
2585 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3182
2586 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3183
2587 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3184
2588 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3185
2589 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3186
2590 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3187
2591 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3188
2592 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3189
2593 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3190
2594 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3191
2595 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3192
2596 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3193
2597 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3194
2598 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3195
2599 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3196
2600 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3197
2601 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3198
2602 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3199
2603 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3200
2604 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3201
2605 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3202
2606 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3203
2607 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3204
2608 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3205
2609 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3206
2610 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3207
2611 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3208
2612 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3209
2613 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3210
2614 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3214
2615 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3215
2616 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3216
2617 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3217
2618 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3218
2619 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3219
2620 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3220
2621 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3221
2622 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3222
2623 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3223
2624 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3224
2625 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3225
2626 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3226
2627 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3227
2628 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3228
2629 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3229
2630 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3230
2631 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3231
2632 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3232
2633 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3233
2634 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3234
2635 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3235
2636 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3238
2637 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3243
2638 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3244
2639 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3245
2640 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3246
2641 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3247
2642 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3248
2643 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3249
2644 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3250
2645 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3251
2646 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3252
2647 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3253
2648 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3254
2649 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3257
2650 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3258
2651 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3259
2652 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3260
2653 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3262
2654 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3265
2655 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3266
2656 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3267
2657 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3268
2658 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3269
2659 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3270
2660 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3271
2661 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3272
2662 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3273
2663 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3274
2664 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3275
2665 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3276
2666 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3277
2667 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3278
2668 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3279
2669 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3280
2670 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3281
2671 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3282
2672 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3283
2673 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3284
2674 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3287
2675 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3288
2676 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3289
2677 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3290
2678 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3291
2679 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3292
2680 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3293
2681 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3294
2682 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3295
2683 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3296
2684 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3297
2685 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3298
2686 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3299
2687 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3300
2688 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3301
2689 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3302
2690 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3303
2691 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3304
2692 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3305
2693 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3306
2694 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3307
2695 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3308
2696 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3309
2697 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3310
2698 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3311
2699 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3312
2700 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3313
2701 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3314
2702 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3315
2703 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3316
2704 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3317
2705 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3318
2706 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3319
2707 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3320
2708 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3321
2709 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3322
2710 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3323
2711 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3324
2712 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3325
2713 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3326
2714 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3327
2715 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3328
2716 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3329
2717 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3330
2718 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3331
2719 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3332
2720 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3333
2721 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3334
2722 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3335
2723 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3336
2724 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3337
2725 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3338
2726 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3339
2727 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3340
2728 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3341
2729 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3342
2730 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3343
2731 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3344
2732 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3345
2733 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3346
2734 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3347
2735 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3348
2736 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3349
2737 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3350
2738 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3351
2739 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3352
2740 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3353
2741 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3354
2742 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3355
2743 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3356
2744 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3357
2745 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3358
2746 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3359
2747 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3360
2748 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3361
2749 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3362
2750 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3363
2751 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3364
2752 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3366
2753 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3370
2754 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3371
2755 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3372
2756 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3373
2757 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3374
2758 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3375
2759 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3376
2760 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3377
2761 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3378
2762 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3379
2763 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3380
2764 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3381
2765 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3382
2766 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3383
2767 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3384
2768 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3385
2769 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3386
2770 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3387
2771 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3388
2772 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3389
2773 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3390
2774 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3391
2775 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3392
2776 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3393
2777 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3394
2778 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3395
2779 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3396
2780 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3397
2781 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3398
2782 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3399
2783 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3400
2784 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3401
2785 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3402
2786 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3403
2787 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3404
2788 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3405
2789 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3406
2790 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3407
2791 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3408
2792 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3409
2793 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3410
2794 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3411
2795 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3412
2796 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3413
2797 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3414
2798 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3415
2799 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3416
2800 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3417
2801 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3418
2802 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3419
2803 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3420
2804 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3421
2805 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3422
2806 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3423
2807 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3424
2808 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3425
2809 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3426
2810 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3427
2811 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3428
2812 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3429
2813 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3430
2814 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3431
2815 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3432
2816 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3433
2817 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3434
2818 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3435
2819 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3436
2820 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3437
2821 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3438
2822 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3439
2823 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3440
2824 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3441
2825 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3442
2826 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3443
2827 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3444
2828 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3445
2829 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3446
2830 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3447
2831 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3448
2832 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3449
2833 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3450
2834 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3451
2835 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3452
2836 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3453
2837 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3454
2838 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3455
2839 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3456
2840 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3457
2841 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3458
2842 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3459
2843 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3460
2844 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3461
2845 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3462
2846 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3463
2847 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3464
2848 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3465
2849 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3466
2850 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3467
2851 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3468
2852 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3469
2853 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3470
2854 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3471
2855 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3474
2856 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3475
2857 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3476
2858 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3477
2859 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3478
2860 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3479
2861 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3480
2862 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3481
2863 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3482
2864 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3483
2865 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3484
2866 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3485
2867 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3486
2868 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3487
2869 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3488
2870 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3489
2871 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3490
2872 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3491
2873 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3492
2874 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3493
2875 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3494
2876 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3495
2877 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3496
2878 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3497
2879 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3498
2880 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3499
2881 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3500
2882 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3501
2883 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3502
2884 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3503
2885 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3505
2886 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3506
2887 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3507
2888 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3509
2889 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3510
2890 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3511
2891 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3512
2892 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3513
2893 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3514
2894 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3515
2895 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3516
2896 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3517
2897 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3518
2898 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3519
2899 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3520
2900 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3521
2901 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3522
2902 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3523
2903 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3524
2904 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3525
2905 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3526
2906 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3527
2907 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3528
2908 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3529
2909 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3530
2910 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3531
2911 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3532
2912 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3533
2913 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3534
2914 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3535
2915 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3536
2916 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3537
2917 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3538
2918 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3539
2919 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3540
2920 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3541
2921 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3542
2922 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3543
2923 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3544
2924 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3545
2925 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3546
2926 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3547
2927 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3548
2928 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3549
2929 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3550
2930 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3551
2931 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3553
2932 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3554
2933 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3555
2934 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3556
2935 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3557
2936 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3558
2937 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3559
2938 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3560
2939 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3561
2940 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3562
2941 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3563
2942 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3564
2943 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3565
2944 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3566
2945 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3567
2946 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3569
2947 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3570
2948 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3571
2949 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3575
2950 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3576
2951 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3577
2952 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3579
2953 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3580
2954 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3581
2955 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3582
2956 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3583
2957 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3584
2958 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3587
2959 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3588
2960 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3589
2961 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3590
2962 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3591
2963 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3595
2964 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3596
2965 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3597
2966 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3598
2967 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3599
2968 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3600
2969 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3601
2970 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3602
2971 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3604
2972 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3605
2973 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3606
2974 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3607
2975 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3608
2976 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3609
2977 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3610
2978 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3611
2979 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3612
2980 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3613
2981 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3614
2982 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3615
2983 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3616
2984 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3617
2985 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3618
2986 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3619
2987 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3620
2988 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3622
2989 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3623
2990 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3624
2991 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3625
2992 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3626
2993 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3627
2994 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3628
2995 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3629
2996 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3630
2997 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3632
2998 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3633
2999 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3634
3000 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3636
3001 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3637
3002 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3638
3003 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3639
3004 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3640
3005 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3641
3006 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3642
3007 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3643
3008 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3644
3009 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3645
3010 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3646
3011 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3647
3012 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3648
3013 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3649
3014 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3650
3015 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3651
3016 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3652
3017 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3653
3018 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3654
3019 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3655
3020 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3656
3021 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3657
3022 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3658
3023 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3659
3024 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3660
3025 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3661
3026 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3662
3027 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3663
3028 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3664
3029 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3665
3030 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3666
3031 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3667
3032 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3668
3033 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3669
3034 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3670
3035 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3671
3036 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3672
3037 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3673
3038 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3674
3039 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3675
3040 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3676
3041 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3677
3042 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3678
3043 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3679
3044 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3680
3045 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3681
3046 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3682
3047 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3683
3048 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3684
3049 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3685
3050 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3686
3051 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3687
3052 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3688
3053 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3689
3054 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3690
3055 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3691
3056 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3692
3057 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3693
3058 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3694
3059 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3695
3060 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3696
3061 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3697
3062 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3698
3063 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3699
3064 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3700
3065 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3701
3066 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3702
3067 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3703
3068 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3704
3069 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3705
3070 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3706
3071 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3707
3072 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3708
3073 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3709
3074 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3710
3075 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3711
3076 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3712
3077 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3713
3078 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3714
3079 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3715
3080 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3716
3081 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3717
3082 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3718
3083 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3719
3084 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3720
3085 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3724
3086 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3725
3087 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3726
3088 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3727
3089 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3728
3090 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3729
3091 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3730
3092 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3731
3093 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3732
3094 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3738
3095 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3739
3096 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3740
3097 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3741
3098 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3742
3099 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3743
3100 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3744
3101 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3745
3102 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3746
3103 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3747
3104 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3748
3105 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3749
3106 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3750
3107 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3751
3108 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3752
3109 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3753
3110 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3754
3111 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3755
3112 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3756
3113 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3757
3114 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3758
3115 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3759
3116 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3760
3117 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3761
3118 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3762
3119 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3763
3120 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3764
3121 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3765
3122 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3766
3123 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3767
3124 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3768
3125 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3769
3126 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3770
3127 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3771
3128 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3772
3129 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3773
3130 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3774
3131 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3775
3132 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3776
3133 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3777
3134 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3778
3135 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3779
3136 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3780
3137 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3781
3138 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3787
3139 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3788
3140 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3789
3141 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3790
3142 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3791
3143 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3792
3144 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3793
3145 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3794
3146 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3795
3147 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3796
3148 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3797
3149 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3798
3150 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3799
3151 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3800
3152 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3801
3153 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3802
3154 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3803
3155 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3804
3156 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3805
3157 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3806
3158 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3807
3159 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3808
3160 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3809
3161 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3810
3162 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3811
3163 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3812
3164 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3813
3165 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3814
3166 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3815
3167 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3816
3168 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3817
3169 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3818
3170 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3819
3171 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3820
3172 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3821
3173 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3822
3174 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3823
3175 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3824
3176 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3825
3177 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3826
3178 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3827
3179 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3828
3180 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3829
3181 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3830
3182 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3831
3183 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3832
3184 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3833
3185 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3834
3186 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3835
3187 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3836
3188 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3837
3189 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3838
3190 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3839
3191 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3842
3192 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3843
3193 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3844
3194 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3845
3195 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3846
3196 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3847
3197 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3848
3198 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3849
3199 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3850
3200 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3851
3201 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3852
3202 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3853
3203 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3854
3204 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3855
3205 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3856
3206 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3857
3207 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3858
3208 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3859
3209 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3860
3210 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3861
3211 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3862
3212 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3863
3213 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3864
3214 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3865
3215 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3866
3216 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3867
3217 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3868
3218 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3869
3219 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3870
3220 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3871
3221 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3872
3222 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3873
3223 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3874
3224 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3875
3225 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3876
3226 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3877
3227 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3878
3228 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3879
3229 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3880
3230 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3881
3231 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3882
3232 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3883
3233 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3884
3234 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3885
3235 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3886
3236 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3887
3237 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3888
3238 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3889
3239 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3890
3240 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3891
3241 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3892
3242 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3893
3243 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3894
3244 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3895
3245 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3896
3246 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3897
3247 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3898
3248 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3899
3249 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3900
3250 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3901
3251 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3902
3252 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3903
3253 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3904
3254 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3905
3255 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3906
3256 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3907
3257 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3908
3258 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3909
3259 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3910
3260 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3911
3261 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3912
3262 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3913
3263 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3914
3264 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3915
3265 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3916
3266 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3917
3267 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3918
3268 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3919
3269 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3920
3270 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3921
3271 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3922
3272 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3923
3273 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3924
3274 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3925
3275 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3926
3276 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3927
3277 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3928
3278 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3929
3279 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3930
3280 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3931
3281 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3932
3282 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3933
3283 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3936
3284 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3937
3285 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3938
3286 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3939
3287 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3940
3288 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3941
3289 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3942
3290 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3943
3291 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3944
3292 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3945
3293 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3946
3294 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3947
3295 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3948
3296 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3949
3297 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3950
3298 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3951
3299 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3952
3300 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3953
3301 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3954
3302 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3955
3303 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3956
3304 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3957
3305 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3958
3306 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3962
3307 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3963
3308 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3964
3309 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3965
3310 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3966
3311 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3967
3312 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3968
3313 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3969
3314 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3970
3315 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3971
3316 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3972
3317 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3973
3318 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3974
3319 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3975
3320 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3976
3321 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3977
3322 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3978
3323 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3979
3324 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3980
3325 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3981
3326 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3982
3327 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3983
3328 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3984
3329 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3985
3330 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3986
3331 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3987
3332 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3988
3333 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3989
3334 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3990
3335 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3991
3336 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3992
3337 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3993
3338 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3994
3339 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3995
3340 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3996
3341 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3997
3342 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3998
3343 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3999
3344 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4000
3345 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4001
3346 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4002
3347 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4003
3348 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4004
3349 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4005
3350 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4006
3351 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4007
3352 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4008
3353 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4009
3354 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4010
3355 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4011
3356 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4012
3357 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4013
3358 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4014
3359 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4015
3360 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4016
3361 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4017
3362 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4018
3363 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4019
3364 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4020
3365 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4021
3366 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4022
3367 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4023
3368 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4024
3369 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4025
3370 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4026
3371 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4027
3372 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4028
3373 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4029
3374 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4030
3375 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4031
3376 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4032
3377 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4033
3378 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4034
3379 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4035
3380 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4036
3381 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4037
3382 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4038
3383 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4039
3384 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4040
3385 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4041
3386 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4042
3387 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4043
3388 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4044
3389 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4045
3390 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4046
3391 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4047
3392 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4048
3393 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4049
3394 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4050
3395 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4051
3396 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4052
3397 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4053
3398 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4054
3399 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4055
3400 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4056
3401 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4057
3402 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4058
3403 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4059
3404 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4060
3405 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4061
3406 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4062
3407 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4063
3408 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4064
3409 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4065
3410 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4066
3411 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4067
3412 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4068
3413 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4069
3414 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4070
3415 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4071
3416 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4072
3417 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4073
3418 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4074
3419 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4075
3420 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4076
3421 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4077
3422 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4078
3423 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4079
3424 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4080
3425 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4081
3426 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4082
3427 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4083
3428 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4084
3429 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4085
3430 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4086
3431 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4087
3432 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4088
3433 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4089
3434 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4090
3435 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4091
3436 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4092
3437 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4093
3438 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4094
3439 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4095
3440 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4096
3441 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4097
3442 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4098
3443 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4099
3444 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4100
3445 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4101
3446 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4102
3447 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4103
3448 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4104
3449 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4105
3450 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4106
3451 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4107
3452 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4108
3453 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4109
3454 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4110
3455 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4111
3456 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4112
3457 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4113
3458 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4114
3459 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4115
3460 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4116
3461 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4117
3462 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4118
3463 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4120
3464 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4121
3465 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4122
3466 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4123
3467 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4124
3468 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4125
3469 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4126
3470 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4127
3471 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4128
3472 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4129
3473 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4130
3474 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4131
3475 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4132
3476 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4133
3477 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4134
3478 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4135
3479 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4136
3480 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4137
3481 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4138
3482 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4139
3483 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4140
3484 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4141
3485 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4142
3486 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4143
3487 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4144
3488 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4145
3489 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4146
3490 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4147
3491 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4148
3492 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4149
3493 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4150
3494 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4151
3495 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4152
3496 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4153
3497 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4154
3498 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4155
3499 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4156
3500 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4157
3501 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4158
3502 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4159
3503 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4160
3504 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4161
3505 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4166
3506 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4167
3507 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4168
3508 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4169
3509 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4170
3510 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4171
3511 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4172
3512 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4173
3513 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4174
3514 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4175
3515 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4176
3516 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4177
3517 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4178
3518 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4179
3519 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4180
3520 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4181
3521 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4182
3522 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4183
3523 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4184
3524 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4185
3525 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4186
3526 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4187
3527 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4188
3528 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4189
3529 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4190
3530 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4191
3531 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4192
3532 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4193
3533 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4194
3534 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4195
3535 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4196
3536 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4197
3537 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4198
3538 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4199
3539 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4200
3540 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4201
3541 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4202
3542 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4203
3543 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4204
3544 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4205
3545 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4206
3546 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4207
3547 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4208
3548 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4209
3549 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4210
3550 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4211
3551 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4212
3552 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4213
3553 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4214
3554 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4215
3555 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4216
3556 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4217
3557 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4218
3558 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4219
3559 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4220
3560 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4221
3561 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4222
3562 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4223
3563 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4224
3564 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4225
3565 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4226
3566 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4227
3567 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4228
3568 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4229
3569 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4230
3570 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4231
3571 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4232
3572 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4233
3573 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4234
3574 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4235
3575 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4236
3576 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4237
3577 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4238
3578 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4239
3579 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4240
3580 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4241
3581 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4242
3582 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4243
3583 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4244
3584 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4245
3585 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4246
3586 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4247
3587 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4248
3588 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4249
3589 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4250
3590 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4251
3591 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4252
3592 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4259
3593 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4260
3594 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4261
3595 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4262
3596 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4263
3597 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4264
3598 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4265
3599 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4266
3600 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4267
3601 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4268
3602 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4269
3603 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4270
3604 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4271
3605 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4272
3606 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4273
3607 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4274
3608 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4275
3609 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4276
3610 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4277
3611 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4278
3612 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4279
3613 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4280
3614 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4281
3615 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4282
3616 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4283
3617 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4284
3618 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4285
3619 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4286
3620 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4287
3621 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4288
3622 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4289
3623 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4290
3624 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4291
3625 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4292
3626 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4293
3627 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4294
3628 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4295
3629 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4296
3630 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4297
3631 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4298
3632 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4299
3633 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4300
3634 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4301
3635 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4302
3636 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4303
3637 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4304
3638 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4305
3639 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4306
3640 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4307
3641 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4309
3642 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4312
3643 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4313
3644 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4314
3645 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4315
3646 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4316
3647 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4317
3648 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4318
3649 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4319
3650 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4320
3651 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4321
3652 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4322
3653 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4323
3654 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4324
3655 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4325
3656 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4326
3657 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4327
3658 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4328
3659 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4329
3660 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4330
3661 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4331
3662 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4332
3663 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4333
3664 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4334
3665 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4335
3666 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4336
3667 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4337
3668 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4338
3669 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4339
3670 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4340
3671 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4341
3672 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4342
3673 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4343
3674 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4344
3675 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4345
3676 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4346
3677 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4347
3678 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4348
3679 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4349
3680 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4350
3681 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4351
3682 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4352
3683 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4353
3684 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4354
3685 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4355
3686 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4356
3687 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4357
3688 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4358
3689 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4359
3690 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4360
3691 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4361
3692 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4362
3693 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4363
3694 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4364
3695 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4365
3696 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4366
3697 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4367
3698 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4368
3699 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4369
3700 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4370
3701 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4371
3702 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4372
3703 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4373
3704 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4374
3705 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4375
3706 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4376
3707 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4377
3708 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4378
3709 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4379
3710 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4380
3711 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4381
3712 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4382
3713 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4383
3714 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4384
3715 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4385
3716 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4386
3717 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4387
3718 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4388
3719 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4389
3720 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4390
3721 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4391
3722 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4392
3723 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4393
3724 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4394
3725 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4395
3726 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4396
3727 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4397
3728 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4398
3729 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4399
3730 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4400
3731 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4401
3732 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4402
3733 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4403
3734 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4404
3735 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4405
3736 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4406
3737 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4407
3738 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4408
3739 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4409
3740 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4410
3741 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4411
3742 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4412
3743 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4413
3744 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4414
3745 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4415
3746 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4416
3747 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4417
3748 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4418
3749 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4419
3750 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4420
3751 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4421
3752 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4422
3753 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4423
3754 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4424
3755 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4425
3756 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4426
3757 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4427
3758 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4428
3759 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4429
3760 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4430
3761 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4431
3762 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4432
3763 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4433
3764 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4434
3765 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4435
3766 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4436
3767 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4437
3768 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4438
3769 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4439
3770 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4440
3771 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4441
3772 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4442
3773 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4443
3774 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4444
3775 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4445
3776 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4446
3777 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4447
3778 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4448
3779 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4449
3780 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4450
3781 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4451
3782 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4452
3783 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4453
3784 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4454
3785 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4455
3786 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4456
3787 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4457
3788 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4458
3789 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4459
3790 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4460
3791 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4461
3792 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4462
3793 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4463
3794 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4464
3795 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4465
3796 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4466
3797 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4467
3798 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4468
3799 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4469
3800 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4470
3801 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4471
3802 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4472
3803 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4473
3804 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4474
3805 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4475
3806 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4476
3807 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4477
3808 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4478
3809 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4479
3810 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4480
3811 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4481
3812 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4482
3813 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4483
3814 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4484
3815 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4485
3816 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4486
3817 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4487
3818 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4488
3819 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4489
3820 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4490
3821 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4491
3822 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4492
3823 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4493
3824 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4494
3825 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4495
3826 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4496
3827 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4497
3828 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4498
3829 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4499
3830 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4500
3831 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4501
3832 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4502
3833 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4503
3834 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4504
3835 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4505
3836 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4506
3837 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4507
3838 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4508
3839 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4509
3840 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4510
3841 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4511
3842 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4512
3843 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4513
3844 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4514
3845 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4515
3846 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4516
3847 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4517
3848 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4518
3849 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4519
3850 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4520
3851 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4521
3852 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4522
3853 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4523
3854 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4524
3855 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4525
3856 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4526
3857 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4527
3858 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4528
3859 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4529
3860 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4530
3861 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4531
3862 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4532
3863 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4534
3864 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4535
3865 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4536
3866 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4537
3867 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4538
3868 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4539
3869 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4540
3870 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4541
3871 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4542
3872 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4543
3873 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4544
3874 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4545
3875 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4546
3876 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4547
3877 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4548
3878 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4549
3879 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4550
3880 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4551
3881 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4552
3882 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4553
3883 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4554
3884 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4555
3885 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4556
3886 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4557
3887 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4558
3888 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4559
3889 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4560
3890 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4561
3891 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4562
3892 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4563
3893 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4564
3894 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4565
3895 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4566
3896 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4567
3897 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4568
3898 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4569
3899 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4570
3900 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4571
3901 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4572
3902 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4573
3903 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4574
3904 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4575
3905 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4576
3906 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4577
3907 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4578
3908 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4579
3909 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4580
3910 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4581
3911 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4582
3912 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4583
3913 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4584
3914 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4585
3915 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4586
3916 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4587
3917 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4588
3918 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4589
3919 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4593
3920 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4594
3921 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4595
3922 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4596
3923 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4597
3924 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4598
3925 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4600
3926 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4601
3927 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4602
3928 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4603
3929 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4604
3930 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4605
3931 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4606
3932 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4607
3933 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4608
3934 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4609
3935 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4610
3936 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4611
3937 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4612
3938 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4614
3939 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4617
3940 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4618
3941 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4619
3942 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4620
3943 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4621
3944 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4622
3945 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4623
3946 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4624
3947 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4625
3948 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4626
3949 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4627
3950 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4628
3951 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4629
3952 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4631
3953 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4639
3954 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4640
3955 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4641
3956 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4642
3957 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4645
3958 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4646
3959 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4647
3960 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4648
3961 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4649
3962 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4650
3963 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4652
3964 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4653
3965 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4654
3966 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4655
3967 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4658
3968 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4660
3969 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4662
3970 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4663
3971 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4664
3972 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4665
3973 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4666
3974 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4667
3975 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4669
3976 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4672
3977 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4674
3978 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4676
3979 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4682
3980 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4683
3981 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4684
3982 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4685
3983 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4686
3984 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4690
3985 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4691
3986 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4694
3987 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4695
3988 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4696
3989 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4697
3990 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4698
3991 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4699
3992 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4700
3993 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4701
3994 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4702
3995 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4703
3996 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4704
3997 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4705
3998 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4706
3999 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4707
4000 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4709
4001 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4710
4002 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4711
4003 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4712
4004 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4713
4005 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4714
4006 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4715
4007 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4716
4008 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4719
4009 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4720
4010 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4721
4011 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4722
4012 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4723
4013 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4724
4014 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4725
4015 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4726
4016 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4727
4017 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4728
4018 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4729
4019 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4730
4020 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4731
4021 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4732
4022 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4733
4023 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4735
4024 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4736
4025 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4737
4026 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4738
4027 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4739
4028 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4740
4029 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4741
4030 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4742
4031 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4743
4032 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4744
4033 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4745
4034 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4746
4035 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4747
4036 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4749
4037 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4751
4038 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4752
4039 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4753
4040 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4754
4041 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4755
4042 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4756
4043 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4758
4044 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4759
4045 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4760
4046 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4761
4047 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4762
4048 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4763
4049 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4764
4050 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4765
4051 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4766
4052 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4767
4053 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4768
4054 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4769
4055 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4771
4056 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4773
4057 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4775
4058 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4777
4059 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4778
4060 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4781
4061 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4783
4062 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4785
4063 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4787
4064 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4789
4065 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4790
4066 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4791
4067 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4792
4068 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4793
4069 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4795
4070 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4796
4071 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4797
4072 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4798
4073 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4799
4074 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4800
4075 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4801
4076 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4802
4077 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4803
4078 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4804
4079 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4805
4080 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4806
4081 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4807
4082 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4808
4083 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4809
4084 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4810
4085 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4811
4086 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4812
4087 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4813
4088 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4814
4089 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4815
4090 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4816
4091 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4818
4092 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4819
4093 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4820
4094 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4821
4095 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4822
4096 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4823
4097 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4824
4098 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4826
4099 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4827
4100 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4830
4101 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4834
4102 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4835
4103 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4836
4104 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4837
4105 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4839
4106 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4840
4107 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4841
4108 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4843
4109 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4844
4110 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4850
4111 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4851
4112 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4852
4113 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4855
4114 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4857
4115 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4859
4116 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4860
4117 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4861
4118 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4864
4119 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4868
4120 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4869
4121 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4870
4122 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4871
4123 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4872
4124 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4873
4125 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4874
4126 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4875
4127 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4876
4128 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4877
4129 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4878
4130 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4879
4131 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4880
4132 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4881
4133 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4882
4134 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4884
4135 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4885
4136 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4886
4137 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4887
4138 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4888
4139 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4889
4140 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4890
4141 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4891
4142 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4892
4143 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4894
4144 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4895
4145 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4897
4146 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4899
4147 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4903
4148 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4910
4149 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4911
4150 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4912
4151 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4913
4152 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4916
4153 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4920
4154 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4921
4155 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4925
4156 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4926
4157 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4931
4158 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4933
4159 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4934
4160 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4935
4161 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4936
4162 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4937
4163 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4938
4164 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4940
4165 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4942
4166 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4957
4167 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4959
4168 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4960
4169 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4961
4170 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4963
4171 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4964
4172 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4965
4173 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4966
4174 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4968
4175 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4972
4176 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4973
4177 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4975
4178 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4981
4179 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4983
4180 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4984
4181 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4985
4182 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4987
4183 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4990
4184 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4991
4185 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4992
4186 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4993
4187 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4995
4188 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4996
4189 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5000
4190 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5001
4191 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5004
4192 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5007
4193 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5008
4194 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5010
4195 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5011
4196 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5015
4197 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5018
4198 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5019
4199 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5020
4200 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5021
4201 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5023
4202 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5026
4203 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5027
4204 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5028
4205 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5029
4206 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5030
4207 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5031
4208 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5032
4209 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5033
4210 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5034
4211 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5035
4212 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5036
4213 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5038
4214 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5039
4215 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5040
4216 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5042
4217 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5044
4218 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5047
4219 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5049
4220 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5050
4221 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5052
4222 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5053
4223 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5055
4224 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5056
4225 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5058
4226 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5060
4227 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5063
4228 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5066
4229 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5068
4230 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5071
4231 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5072
4232 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5075
4233 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5076
4234 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5078
4235 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5082
4236 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5083
4237 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5085
4238 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5087
4239 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5088
4240 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5091
4241 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5093
4242 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5094
4243 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5096
4244 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5098
4245 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5099
4246 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5102
4247 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5103
4248 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5104
4249 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5107
4250 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5109
4251 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5110
4252 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5111
4253 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5113
4254 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5114
4255 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5117
4256 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5118
4257 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5119
4258 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5122
4259 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5123
4260 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5125
4261 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5127
4262 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5128
4263 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5129
4264 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5133
4265 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5135
4266 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5136
4267 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5138
4268 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5140
4269 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5143
4270 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5145
4271 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5147
4272 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5150
4273 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5152
4274 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5153
4275 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5154
4276 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5155
4277 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5156
4278 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5157
4279 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5158
4280 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5159
4281 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5160
4282 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5165
4283 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5167
4284 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5168
4285 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5169
4286 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5172
4287 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5174
4288 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5175
4289 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5176
4290 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5178
4291 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5181
4292 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5182
4293 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5183
4294 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5184
4295 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5185
4296 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5187
4297 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5188
4298 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5191
4299 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5193
4300 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5194
4301 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5196
4302 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5197
4303 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5199
4304 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5201
4305 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5202
4306 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5204
4307 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5205
4308 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5208
4309 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5209
4310 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5212
4311 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5214
4312 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5215
4313 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5217
4314 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5218
4315 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5222
4316 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5223
4317 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5225
4318 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5234
4319 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5235
4320 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5236
4321 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5238
4322 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5239
4323 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5241
4324 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5243
4325 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5244
4326 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5245
4327 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5247
4328 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5248
4329 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5250
4330 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5252
4331 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5253
4332 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5254
4333 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5256
4334 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5258
4335 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5259
4336 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5263
4337 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5265
4338 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5267
4339 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5268
4340 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5272
4341 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5275
4342 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5278
4343 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5280
4344 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5281
4345 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5282
4346 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5283
4347 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5284
4348 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5285
4349 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5286
4350 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5288
4351 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5289
4352 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5291
4353 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5292
4354 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5295
4355 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5297
4356 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5298
4357 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5303
4358 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5306
4359 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5308
4360 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5310
4361 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5311
4362 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5313
4363 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5315
4364 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5317
4365 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5318
4366 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5320
4367 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5322
4368 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5323
4369 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5324
4370 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5325
4371 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5326
4372 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5327
4373 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5328
4374 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5329
4375 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5330
4376 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5332
4377 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5334
4378 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5335
4379 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5337
4380 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5339
4381 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5340
4382 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5341
4383 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5342
4384 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5343
4385 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5344
4386 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5345
4387 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5346
4388 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5347
4389 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5348
4390 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5349
4391 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5350
4392 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5351
4393 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5352
4394 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5353
4395 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5357
4396 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5358
4397 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5362
4398 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5365
4399 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5367
4400 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5369
4401 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5372
4402 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5373
4403 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5375
4404 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5377
4405 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5379
4406 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5382
4407 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5383
4408 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5384
4409 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5386
4410 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5388
4411 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5389
4412 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5390
4413 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5391
4414 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5392
4415 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5393
4416 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5394
4417 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5395
4418 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5396
4419 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5397
4420 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5398
4421 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5399
4422 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5400
4423 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5401
4424 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5402
4425 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5404
4426 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5405
4427 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5408
4428 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5410
4429 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5412
4430 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5413
4431 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5415
4432 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5418
4433 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5419
4434 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5421
4435 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5422
4436 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5425
4437 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5426
4438 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5428
4439 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5432
4440 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5433
4441 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5434
4442 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5435
4443 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5436
4444 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5437
4445 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5438
4446 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5439
4447 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5440
4448 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5441
4449 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5442
4450 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5443
4451 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5444
4452 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5445
4453 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5446
4454 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5447
4455 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5448
4456 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5449
4457 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5450
4458 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5451
4459 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5452
4460 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5453
4461 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5454
4462 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5455
4463 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5456
4464 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5457
4465 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5458
4466 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5459
4467 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5460
4468 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5461
4469 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5462
4470 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5463
4471 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5464
4472 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5465
4473 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5466
4474 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5467
4475 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5471
4476 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5472
4477 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5474
4478 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5478
4479 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5479
4480 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5480
4481 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5481
4482 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5482
4483 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5483
4484 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5484
4485 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5485
4486 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5486
4487 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5487
4488 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5488
4489 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5489
4490 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5490
4491 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5491
4492 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5492
4493 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5493
4494 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5494
4495 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5495
4496 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5496
4497 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5497
4498 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5498
4499 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5499
4500 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5500
4501 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5501
4502 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5502
4503 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5503
4504 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5504
4505 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5505
4506 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5506
4507 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5507
4508 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5508
4509 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5509
4510 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5510
4511 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5511
4512 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5512
4513 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5513
4514 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5514
4515 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5515
4516 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5516
4517 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5517
4518 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5518
4519 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5519
4520 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5520
4521 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5521
4522 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5522
4523 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5523
4524 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5524
4525 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5529
4526 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5530
4527 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5531
4528 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5532
4529 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5533
4530 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5535
4531 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5536
4532 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5537
4533 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5543
4534 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5544
4535 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5549
4536 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5550
4537 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5551
4538 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5552
4539 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5556
4540 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5557
4541 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5558
4542 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5560
4543 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5562
4544 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5563
4545 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5564
4546 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5565
4547 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5566
4548 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5572
4549 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5598
4550 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5599
4551 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5600
4552 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5601
4553 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5602
4554 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5603
4555 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5620
4556 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5624
4557 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5625
4558 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5626
4559 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5627
4560 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5628
4561 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5629
4562 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5630
4563 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5631
4564 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5642
4565 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5649
4566 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5650
4567 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5651
4568 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5652
4569 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5653
4570 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5654
4571 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5655
4572 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5656
4573 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5657
4574 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5658
4575 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5659
4576 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5660
4577 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5661
4578 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5662
4579 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5663
4580 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5664
4581 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5665
4582 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5666
4583 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5667
4584 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5668
4585 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5669
4586 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5670
4587 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5671
4588 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5672
4589 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5673
4590 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5674
4591 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5675
4592 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5676
4593 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5677
4594 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5678
4595 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5679
4596 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5680
4597 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5681
4598 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5682
4599 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5683
4600 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5684
4601 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5685
4602 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5686
4603 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5687
4604 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5688
4605 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5689
4606 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5690
4607 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5691
4608 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5692
4609 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5693
4610 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5694
4611 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5695
4612 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5696
4613 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5697
4614 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5698
4615 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5699

   + 1 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1
2 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2
3 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:7
4 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:9
5 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:10
6 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:11
7 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:12
8 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:13
9 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:14
10 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:15
11 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:16
12 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:17
13 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:18
14 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:19
15 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:20
16 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:21
17 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:22
18 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:23
19 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:24
20 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:25
21 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:26
22 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:27
23 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:28
24 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:29
25 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:30
26 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:31
27 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:32
28 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:33
29 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:34
30 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:35
31 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:36
32 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:37
33 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:38
34 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:39
35 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:40
36 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:41
37 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:42
38 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:43
39 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:44
40 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:45
41 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:46
42 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:47
43 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:48
44 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:49
45 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:50
46 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:51
47 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:52
48 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:53
49 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:54
50 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:55
51 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:56
52 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:57
53 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:58
54 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:59
55 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:60
56 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:61
57 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:62
58 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:63
59 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:64
60 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:65
61 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:66
62 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:67
63 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:68
64 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:69
65 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:70
66 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:71
67 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:72
68 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:73
69 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:74
70 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:75
71 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:76
72 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:77
73 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:78
74 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:79
75 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:80
76 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:81
77 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:82
78 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:83
79 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:84
80 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:85
81 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:86
82 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:87
83 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:88
84 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:89
85 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:90
86 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:91
87 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:92
88 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:93
89 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:94
90 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:95
91 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:96
92 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:97
93 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:98
94 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:99
95 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:100
96 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:101
97 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:102
98 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:103
99 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:104
100 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:105
101 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:106
102 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:107
103 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:108
104 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:109
105 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:110
106 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:111
107 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:112
108 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:113
109 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:114
110 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:115
111 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:116
112 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:117
113 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:118
114 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:119
115 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:120
116 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:121
117 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:122
118 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:123
119 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:124
120 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:125
121 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:126
122 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:127
123 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:128
124 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:129
125 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:130
126 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:131
127 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:132
128 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:133
129 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:134
130 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:135
131 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:136
132 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:137
133 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:138
134 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:139
135 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:140
136 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:141
137 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:142
138 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:143
139 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:144
140 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:145
141 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:146
142 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:147
143 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:148
144 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:149
145 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:150
146 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:151
147 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:152
148 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:153
149 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:154
150 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:155
151 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:156
152 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:157
153 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:158
154 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:159
155 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:160
156 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:161
157 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:162
158 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:163
159 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:164
160 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:165
161 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:166
162 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:167
163 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:168
164 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:169
165 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:170
166 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:172
167 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:173
168 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:174
169 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:175
170 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:176
171 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:180
172 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:184
173 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:186
174 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:187
175 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:188
176 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:189
177 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:190
178 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:191
179 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:192
180 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:193
181 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:194
182 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:195
183 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:196
184 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:197
185 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:198
186 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:199
187 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:200
188 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:202
189 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:203
190 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:204
191 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:205
192 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:206
193 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:207
194 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:208
195 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:209
196 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:210
197 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:211
198 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:212
199 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:213
200 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:214
201 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:215
202 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:216
203 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:217
204 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:218
205 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:219
206 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:220
207 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:221
208 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:222
209 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:223
210 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:224
211 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:225
212 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:226
213 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:227
214 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:228
215 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:229
216 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:230
217 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:231
218 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:232
219 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:233
220 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:234
221 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:235
222 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:236
223 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:237
224 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:238
225 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:241
226 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:250
227 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:253
228 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:254
229 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:255
230 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:256
231 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:258
232 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:263
233 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:264
234 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:265
235 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:266
236 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:268
237 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:269
238 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:271
239 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:275
240 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:276
241 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:277
242 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:278
243 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:288
244 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:289
245 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:290
246 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:291
247 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:292
248 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:293
249 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:294
250 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:295
251 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:296
252 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:297
253 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:298
254 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:310
255 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:311
256 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:313
257 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:315
258 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:323
259 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:324
260 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:325
261 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:326
262 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:327
263 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:328
264 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:329
265 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:331
266 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:336
267 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:337
268 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:338
269 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:339
270 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:340
271 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:341
272 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:343
273 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:359
274 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:360
275 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:361
276 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:362
277 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:363
278 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:364
279 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:365
280 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:369
281 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:371
282 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:375
283 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:377
284 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:378
285 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:379
286 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:380
287 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:384
288 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:386
289 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:387
290 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:388
291 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:390
292 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:391
293 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:392
294 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:394
295 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:395
296 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:406
297 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:407
298 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:408
299 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:409
300 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:410
301 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:411
302 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:412
303 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:413
304 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:414
305 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:415
306 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:416
307 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:417
308 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:418
309 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:419
310 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:420
311 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:421
312 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:422
313 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:427
314 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:428
315 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:429
316 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:435
317 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:436
318 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:437
319 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:438
320 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:442
321 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:443
322 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:444
323 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:448
324 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:449
325 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:450
326 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:451
327 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:452
328 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:453
329 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:454
330 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:455
331 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:456
332 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:457
333 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:458
334 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:459
335 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:460
336 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:461
337 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:463
338 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:464
339 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:465
340 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:466
341 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:467
342 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:468
343 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:476
344 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:477
345 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:478
346 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:479
347 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:480
348 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:481
349 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:488
350 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:497
351 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:498
352 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:499
353 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:500
354 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:501
355 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:502
356 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:503
357 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:504
358 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:505
359 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:506
360 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:507
361 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:508
362 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:509
363 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:510
364 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:511
365 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:512
366 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:513
367 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:514
368 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:515
369 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:516
370 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:517
371 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:518
372 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:521
373 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:522
374 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:523
375 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:528
376 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:529
377 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:530
378 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:532
379 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:533
380 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:537
381 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:538
382 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:539
383 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:540
384 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:541
385 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:542
386 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:543
387 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:544
388 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:545
389 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:546
390 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:547
391 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:548
392 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:550
393 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:551
394 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:562
395 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:565
396 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:566
397 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:567
398 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:570
399 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:571
400 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:572
401 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:574
402 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:575
403 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:576
404 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:577
405 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:578
406 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:579
407 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:580
408 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:581
409 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:582
410 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:583
411 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:584
412 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:585
413 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:586
414 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:587
415 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:588
416 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:589
417 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:590
418 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:591
419 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:592
420 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:593
421 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:594
422 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:595
423 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:596
424 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:597
425 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:598
426 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:599
427 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:600
428 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:601
429 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:602
430 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:603
431 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:604
432 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:605
433 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:606
434 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:607
435 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:608
436 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:609
437 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:610
438 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:611
439 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:612
440 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:613
441 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:614
442 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:615
443 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:616
444 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:617
445 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:618
446 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:619
447 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:620
448 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:621
449 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:622
450 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:623
451 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:624
452 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:625
453 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:626
454 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:627
455 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:628
456 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:629
457 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:632
458 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:633
459 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:634
460 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:635
461 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:636
462 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:637
463 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:638
464 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:639
465 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:640
466 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:641
467 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:642
468 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:643
469 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:644
470 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:645
471 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:646
472 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:647
473 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:648
474 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:649
475 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:650
476 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:651
477 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:652
478 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:653
479 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:654
480 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:655
481 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:656
482 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:657
483 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:658
484 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:659
485 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:660
486 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:661
487 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:662
488 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:663
489 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:664
490 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:665
491 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:666
492 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:667
493 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:668
494 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:669
495 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:670
496 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:671
497 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:672
498 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:673
499 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:674
500 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:675
501 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:676
502 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:677
503 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:678
504 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:680
505 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:681
506 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:682
507 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:683
508 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:684
509 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:685
510 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:686
511 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:687
512 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:688
513 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:689
514 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:690
515 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:691
516 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:692
517 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:693
518 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:694
519 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:695
520 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:696
521 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:697
522 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:698
523 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:699
524 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:700
525 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:701
526 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:702
527 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:703
528 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:704
529 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:705
530 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:706
531 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:707
532 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:708
533 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:712
534 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:713
535 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:714
536 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:715
537 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:716
538 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:717
539 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:718
540 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:719
541 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:720
542 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:721
543 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:722
544 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:723
545 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:725
546 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:726
547 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:727
548 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:728
549 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:729
550 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:730
551 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:731
552 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:732
553 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:734
554 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:761
555 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:762
556 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:763
557 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:766
558 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:767
559 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:768
560 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:769
561 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:770
562 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:771
563 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:772
564 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:773
565 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:774
566 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:775
567 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:776
568 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:777
569 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:778
570 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:779
571 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:780
572 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:785
573 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:786
574 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:787
575 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:788
576 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:792
577 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:793
578 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:794
579 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:795
580 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:796
581 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:798
582 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:804
583 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:805
584 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:806
585 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:807
586 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:809
587 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:814
588 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:816
589 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:817
590 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:818
591 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:824
592 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:825
593 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:827
594 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:828
595 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:830
596 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:840
597 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:841
598 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:842
599 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:843
600 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:844
601 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:848
602 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:849
603 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:850
604 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:851
605 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:852
606 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:853
607 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:854
608 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:855
609 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:856
610 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:857
611 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:858
612 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:861
613 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:862
614 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:863
615 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:864
616 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:865
617 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:866
618 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:867
619 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:868
620 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:869
621 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:870
622 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:871
623 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:872
624 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:873
625 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:874
626 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:875
627 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:876
628 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:877
629 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:878
630 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:879
631 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:880
632 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:881
633 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:882
634 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:883
635 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:884
636 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:885
637 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:886
638 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:887
639 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:888
640 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:889
641 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:890
642 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:891
643 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:892
644 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:893
645 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:894
646 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:895
647 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:896
648 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:897
649 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:898
650 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:899
651 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:900
652 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:902
653 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:903
654 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:904
655 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:907
656 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:908
657 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:909
658 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:910
659 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:911
660 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:912
661 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:913
662 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:914
663 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:915
664 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:916
665 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:917
666 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:918
667 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:919
668 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:920
669 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:921
670 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:922
671 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:923
672 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:924
673 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:925
674 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:927
675 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:928
676 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:929
677 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:930
678 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:931
679 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:932
680 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:933
681 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:934
682 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:935
683 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:936
684 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:937
685 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:938
686 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:940
687 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:941
688 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:942
689 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:943
690 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:944
691 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:945
692 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:946
693 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:947
694 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:948
695 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:949
696 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:950
697 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:951
698 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:952
699 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:953
700 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:954
701 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:955
702 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:956
703 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:957
704 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:958
705 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:959
706 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:960
707 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:961
708 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:967
709 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:968
710 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:973
711 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:974
712 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:975
713 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:977
714 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:978
715 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:979
716 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:980
717 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:981
718 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:982
719 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:985
720 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:987
721 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:989
722 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:991
723 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:994
724 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1019
725 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1033
726 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1034
727 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1037
728 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1040
729 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1052
730 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1054
731 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1055
732 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1062
733 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1070
734 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1071
735 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1074
736 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1081
737 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1082
738 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1084
739 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1087
740 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1088
741 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1091
742 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1093
743 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1106
744 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1108
745 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1129
746 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1167
747 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1221
748 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1223
749 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1228
750 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1229
751 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1230
752 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1231
753 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1232
754 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1233
755 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1234
756 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1235
757 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1236
758 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1237
759 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1238
760 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1239
761 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1240
762 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1241
763 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1242
764 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1243
765 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1244
766 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1245
767 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1246
768 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1247
769 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1248
770 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1249
771 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1250
772 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1251
773 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1252
774 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1253
775 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1254
776 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1255
777 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1256
778 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1257
779 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1258
780 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1259
781 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1260
782 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1261
783 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1262
784 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1263
785 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1264
786 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1265
787 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1266
788 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1267
789 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1268
790 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1269
791 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1270
792 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1271
793 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1272
794 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1273
795 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1274
796 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1275
797 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1276
798 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1277
799 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1278
800 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1279
801 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1280
802 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1281
803 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1282
804 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1283
805 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1284
806 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1285
807 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1286
808 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1287
809 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1288
810 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1289
811 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1290
812 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1291
813 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1292
814 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1293
815 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1294
816 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1295
817 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1296
818 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1297
819 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1298
820 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1299
821 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1300
822 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1301
823 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1302
824 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1303
825 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1304
826 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1305
827 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1306
828 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1307
829 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1308
830 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1309
831 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1310
832 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1311
833 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1312
834 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1313
835 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1314
836 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1315
837 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1316
838 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1317
839 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1318
840 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1319
841 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1320
842 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1321
843 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1322
844 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1323
845 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1324
846 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1325
847 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1326
848 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1327
849 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1328
850 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1329
851 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1330
852 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1331
853 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1332
854 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1333
855 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1334
856 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1335
857 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1336
858 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1337
859 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1338
860 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1339
861 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1340
862 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1341
863 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1342
864 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1343
865 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1344
866 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1345
867 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1346
868 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1347
869 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1348
870 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1349
871 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1350
872 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1351
873 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1352
874 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1353
875 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1354
876 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1355
877 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1356
878 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1357
879 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1358
880 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1359
881 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1360
882 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1361
883 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1362
884 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1363
885 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1364
886 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1365
887 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1366
888 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1367
889 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1368
890 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1369
891 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1370
892 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1371
893 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1372
894 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1373
895 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1374
896 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1375
897 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1376
898 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1377
899 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1378
900 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1379
901 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1380
902 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1381
903 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1382
904 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1383
905 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1384
906 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1385
907 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1386
908 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1387
909 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1388
910 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1389
911 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1390
912 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1391
913 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1392
914 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1393
915 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1394
916 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1395
917 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1396
918 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1397
919 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1398
920 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1399
921 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1400
922 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1401
923 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1402
924 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1403
925 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1404
926 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1405
927 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1406
928 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1407
929 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1408
930 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1409
931 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1410
932 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1411
933 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1412
934 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1413
935 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1414
936 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1415
937 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1416
938 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1417
939 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1418
940 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1419
941 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1420
942 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1421
943 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1422
944 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1423
945 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1424
946 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1425
947 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1426
948 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1427
949 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1428
950 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1429
951 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1430
952 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1431
953 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1432
954 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1433
955 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1434
956 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1435
957 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1436
958 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1437
959 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1438
960 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1439
961 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1440
962 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1441
963 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1442
964 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1443
965 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1444
966 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1445
967 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1446
968 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1447
969 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1448
970 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1449
971 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1450
972 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1451
973 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1452
974 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1453
975 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1454
976 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1455
977 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1456
978 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1457
979 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1458
980 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1459
981 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1460
982 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1461
983 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1462
984 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1463
985 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1464
986 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1465
987 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1466
988 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1467
989 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1468
990 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1469
991 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1470
992 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1471
993 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1472
994 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1473
995 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1474
996 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1475
997 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1476
998 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1477
999 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1478
1000 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1479
1001 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1480
1002 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1481
1003 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1482
1004 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1483
1005 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1484
1006 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1485
1007 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1486
1008 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1487
1009 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1488
1010 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1489
1011 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1490
1012 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1491
1013 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1492
1014 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1493
1015 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1494
1016 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1495
1017 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1496
1018 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1497
1019 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1498
1020 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1499
1021 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1500
1022 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1501
1023 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1502
1024 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1503
1025 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1504
1026 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1505
1027 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1506
1028 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1507
1029 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1508
1030 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1509
1031 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1510
1032 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1511
1033 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1512
1034 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1513
1035 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1514
1036 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1515
1037 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1516
1038 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1517
1039 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1518
1040 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1519
1041 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1520
1042 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1521
1043 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1522
1044 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1523
1045 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1524
1046 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1525
1047 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1526
1048 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1527
1049 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1528
1050 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1529
1051 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1530
1052 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1531
1053 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1532
1054 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1533
1055 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1534
1056 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1535
1057 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1536
1058 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1537
1059 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1538
1060 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1539
1061 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1540
1062 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1541
1063 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1542
1064 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1543
1065 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1544
1066 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1545
1067 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1546
1068 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1547
1069 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1548
1070 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1549
1071 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1550
1072 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1551
1073 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1552
1074 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1553
1075 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1554
1076 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1555
1077 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1556
1078 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1557
1079 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1558
1080 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1559
1081 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1560
1082 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1561
1083 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1562
1084 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1563
1085 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1564
1086 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1565
1087 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1566
1088 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1567
1089 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1568
1090 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1569
1091 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1570
1092 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1571
1093 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1572
1094 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1573
1095 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1574
1096 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1575
1097 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1576
1098 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1577
1099 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1578
1100 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1579
1101 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1580
1102 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1581
1103 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1582
1104 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1583
1105 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1584
1106 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1585
1107 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1586
1108 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1587
1109 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1588
1110 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1589
1111 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1590
1112 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1591
1113 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1592
1114 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1593
1115 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1594
1116 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1595
1117 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1596
1118 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1597
1119 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1598
1120 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1599
1121 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1600
1122 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1601
1123 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1602
1124 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1603
1125 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1604
1126 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1605
1127 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1606
1128 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1607
1129 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1608
1130 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1609
1131 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1610
1132 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1611
1133 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1612
1134 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1613
1135 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1614
1136 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1615
1137 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1616
1138 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1617
1139 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1618
1140 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1619
1141 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1620
1142 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1621
1143 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1622
1144 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1623
1145 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1624
1146 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1625
1147 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1626
1148 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1627
1149 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1628
1150 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1629
1151 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1630
1152 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1631
1153 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1632
1154 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1633
1155 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1634
1156 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1635
1157 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1636
1158 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1637
1159 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1638
1160 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1639
1161 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1640
1162 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1641
1163 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1642
1164 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1643
1165 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1644
1166 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1645
1167 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1646
1168 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1647
1169 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1648
1170 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1649
1171 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1650
1172 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1651
1173 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1652
1174 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1653
1175 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1654
1176 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1655
1177 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1656
1178 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1657
1179 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1658
1180 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1659
1181 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1660
1182 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1661
1183 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1662
1184 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1663
1185 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1664
1186 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1665
1187 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1666
1188 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1667
1189 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1668
1190 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1669
1191 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1670
1192 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1671
1193 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1672
1194 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1673
1195 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1674
1196 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1675
1197 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1676
1198 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1677
1199 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1678
1200 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1679
1201 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1680
1202 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1681
1203 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1682
1204 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1683
1205 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1684
1206 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1685
1207 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1686
1208 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1687
1209 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1688
1210 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1689
1211 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1690
1212 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1691
1213 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1692
1214 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1693
1215 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1694
1216 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1695
1217 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1696
1218 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1697
1219 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1698
1220 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1699
1221 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1700
1222 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1701
1223 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1702
1224 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1703
1225 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1704
1226 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1705
1227 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1706
1228 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1707
1229 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1708
1230 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1709
1231 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1710
1232 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1711
1233 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1712
1234 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1713
1235 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1714
1236 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1715
1237 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1716
1238 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1717
1239 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1718
1240 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1719
1241 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1720
1242 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1721
1243 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1722
1244 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1723
1245 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1724
1246 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1725
1247 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1726
1248 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1727
1249 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1728
1250 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1729
1251 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1730
1252 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1731
1253 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1732
1254 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1733
1255 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1734
1256 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1735
1257 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1736
1258 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1737
1259 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1738
1260 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1739
1261 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1740
1262 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1741
1263 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1742
1264 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1743
1265 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1744
1266 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1745
1267 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1746
1268 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1747
1269 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1748
1270 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1749
1271 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1750
1272 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1751
1273 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1752
1274 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1753
1275 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1754
1276 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1755
1277 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1756
1278 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1757
1279 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1758
1280 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1759
1281 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1760
1282 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1761
1283 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1762
1284 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1763
1285 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1764
1286 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1765
1287 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1766
1288 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1767
1289 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1768
1290 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1769
1291 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1770
1292 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1771
1293 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1772
1294 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1773
1295 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1774
1296 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1775
1297 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1776
1298 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1777
1299 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1778
1300 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1779
1301 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1780
1302 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1781
1303 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1782
1304 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1783
1305 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1784
1306 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1785
1307 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1786
1308 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1787
1309 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1788
1310 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1789
1311 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1790
1312 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1791
1313 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1792
1314 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1793
1315 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1794
1316 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1795
1317 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1796
1318 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1797
1319 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1798
1320 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1799
1321 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1800
1322 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1801
1323 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1802
1324 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1803
1325 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1804
1326 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1805
1327 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1806
1328 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1807
1329 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1808
1330 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1809
1331 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1810
1332 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1811
1333 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1812
1334 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1813
1335 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1814
1336 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1815
1337 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1816
1338 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1817
1339 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1818
1340 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1819
1341 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1820
1342 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1821
1343 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1822
1344 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1823
1345 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1824
1346 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1825
1347 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1826
1348 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1827
1349 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1828
1350 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1829
1351 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1830
1352 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1831
1353 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1832
1354 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1833
1355 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1834
1356 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1835
1357 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1836
1358 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1837
1359 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1838
1360 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1839
1361 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1840
1362 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1841
1363 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1842
1364 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1843
1365 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1844
1366 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1845
1367 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1846
1368 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1847
1369 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1848
1370 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1849
1371 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1850
1372 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1851
1373 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1852
1374 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1853
1375 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1854
1376 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1855
1377 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1856
1378 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1857
1379 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1858
1380 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1859
1381 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1860
1382 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1861
1383 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1862
1384 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1863
1385 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1864
1386 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1865
1387 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1866
1388 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1867
1389 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1869
1390 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1870
1391 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1871
1392 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1872
1393 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1873
1394 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1874
1395 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1875
1396 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1876
1397 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1877
1398 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1878
1399 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1879
1400 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1880
1401 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1881
1402 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1882
1403 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1883
1404 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1884
1405 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1885
1406 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1886
1407 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1887
1408 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1888
1409 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1889
1410 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1890
1411 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1891
1412 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1892
1413 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1893
1414 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1894
1415 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1895
1416 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1896
1417 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1897
1418 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1898
1419 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1899
1420 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1900
1421 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1901
1422 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1902
1423 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1903
1424 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1904
1425 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1905
1426 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1906
1427 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1907
1428 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1908
1429 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1909
1430 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1910
1431 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1911
1432 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1912
1433 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1913
1434 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1914
1435 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1915
1436 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1916
1437 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1917
1438 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1918
1439 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1919
1440 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1920
1441 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1921
1442 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1922
1443 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1923
1444 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1924
1445 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1925
1446 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1926
1447 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1927
1448 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1928
1449 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1929
1450 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1930
1451 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1931
1452 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1932
1453 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1933
1454 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1934
1455 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1935
1456 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1936
1457 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1937
1458 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1938
1459 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1939
1460 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1940
1461 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1941
1462 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1942
1463 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1943
1464 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1944
1465 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1945
1466 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1946
1467 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1947
1468 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1948
1469 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1949
1470 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1950
1471 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1951
1472 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1952
1473 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1953
1474 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1954
1475 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1955
1476 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1956
1477 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1957
1478 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1958
1479 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1959
1480 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1960
1481 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1961
1482 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1962
1483 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1963
1484 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1964
1485 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1965
1486 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1966
1487 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1967
1488 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1968
1489 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1969
1490 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1970
1491 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1971
1492 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1972
1493 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1973
1494 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1974
1495 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1975
1496 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1976
1497 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1977
1498 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1978
1499 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1979
1500 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1980
1501 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1981
1502 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1982
1503 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1983
1504 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1984
1505 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1985
1506 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1986
1507 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1987
1508 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1988
1509 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1989
1510 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1990
1511 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1991
1512 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1992
1513 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1993
1514 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1994
1515 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1995
1516 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1996
1517 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1997
1518 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1998
1519 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:1999
1520 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2000
1521 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2001
1522 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2002
1523 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2003
1524 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2004
1525 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2005
1526 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2007
1527 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2008
1528 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2009
1529 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2010
1530 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2011
1531 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2012
1532 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2013
1533 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2014
1534 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2015
1535 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2016
1536 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2017
1537 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2018
1538 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2019
1539 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2020
1540 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2021
1541 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2022
1542 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2023
1543 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2024
1544 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2025
1545 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2026
1546 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2027
1547 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2028
1548 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2029
1549 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2030
1550 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2031
1551 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2032
1552 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2033
1553 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2034
1554 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2035
1555 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2036
1556 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2037
1557 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2038
1558 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2039
1559 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2040
1560 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2041
1561 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2042
1562 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2043
1563 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2044
1564 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2045
1565 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2046
1566 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2047
1567 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2048
1568 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2049
1569 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2050
1570 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2051
1571 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2052
1572 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2053
1573 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2054
1574 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2055
1575 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2056
1576 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2057
1577 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2058
1578 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2060
1579 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2062
1580 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2063
1581 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2064
1582 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2065
1583 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2066
1584 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2067
1585 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2068
1586 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2069
1587 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2070
1588 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2071
1589 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2072
1590 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2073
1591 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2074
1592 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2075
1593 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2076
1594 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2077
1595 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2078
1596 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2079
1597 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2080
1598 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2081
1599 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2082
1600 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2083
1601 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2084
1602 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2085
1603 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2086
1604 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2087
1605 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2088
1606 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2089
1607 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2090
1608 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2091
1609 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2092
1610 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2093
1611 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2094
1612 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2095
1613 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2096
1614 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2097
1615 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2098
1616 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2099
1617 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2100
1618 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2101
1619 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2102
1620 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2103
1621 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2104
1622 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2105
1623 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2106
1624 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2107
1625 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2108
1626 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2109
1627 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2110
1628 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2111
1629 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2112
1630 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2113
1631 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2114
1632 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2115
1633 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2116
1634 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2117
1635 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2118
1636 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2119
1637 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2120
1638 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2121
1639 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2122
1640 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2123
1641 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2124
1642 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2125
1643 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2126
1644 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2127
1645 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2128
1646 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2129
1647 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2130
1648 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2131
1649 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2132
1650 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2133
1651 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2134
1652 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2135
1653 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2136
1654 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2137
1655 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2138
1656 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2139
1657 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2140
1658 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2141
1659 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2142
1660 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2143
1661 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2144
1662 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2145
1663 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2146
1664 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2147
1665 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2148
1666 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2149
1667 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2150
1668 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2151
1669 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2152
1670 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2153
1671 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2155
1672 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2157
1673 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2158
1674 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2160
1675 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2161
1676 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2162
1677 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2163
1678 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2164
1679 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2165
1680 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2166
1681 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2167
1682 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2168
1683 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2169
1684 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2170
1685 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2171
1686 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2172
1687 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2173
1688 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2174
1689 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2175
1690 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2176
1691 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2177
1692 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2178
1693 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2179
1694 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2180
1695 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2182
1696 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2183
1697 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2184
1698 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2185
1699 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2186
1700 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2187
1701 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2188
1702 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2189
1703 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2191
1704 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2192
1705 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2193
1706 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2194
1707 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2195
1708 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2196
1709 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2197
1710 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2198
1711 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2199
1712 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2200
1713 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2201
1714 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2202
1715 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2203
1716 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2204
1717 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2205
1718 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2206
1719 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2207
1720 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2208
1721 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2209
1722 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2210
1723 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2211
1724 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2212
1725 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2213
1726 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2214
1727 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2215
1728 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2216
1729 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2217
1730 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2218
1731 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2219
1732 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2220
1733 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2221
1734 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2222
1735 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2223
1736 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2224
1737 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2225
1738 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2226
1739 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2227
1740 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2228
1741 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2229
1742 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2230
1743 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2231
1744 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2232
1745 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2233
1746 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2234
1747 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2235
1748 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2236
1749 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2237
1750 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2238
1751 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2239
1752 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2240
1753 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2241
1754 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2242
1755 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2243
1756 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2244
1757 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2245
1758 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2246
1759 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2247
1760 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2248
1761 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2249
1762 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2250
1763 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2251
1764 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2252
1765 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2253
1766 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2254
1767 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2255
1768 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2256
1769 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2257
1770 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2258
1771 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2260
1772 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2261
1773 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2262
1774 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2263
1775 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2264
1776 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2265
1777 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2266
1778 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2268
1779 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2269
1780 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2270
1781 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2271
1782 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2273
1783 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2274
1784 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2275
1785 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2276
1786 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2277
1787 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2278
1788 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2279
1789 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2280
1790 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2281
1791 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2282
1792 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2283
1793 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2284
1794 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2285
1795 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2286
1796 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2287
1797 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2288
1798 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2289
1799 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2290
1800 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2291
1801 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2292
1802 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2293
1803 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2294
1804 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2295
1805 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2296
1806 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2297
1807 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2298
1808 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2299
1809 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2300
1810 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2301
1811 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2302
1812 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2303
1813 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2304
1814 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2305
1815 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2306
1816 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2307
1817 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2308
1818 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2309
1819 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2310
1820 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2311
1821 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2312
1822 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2314
1823 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2315
1824 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2316
1825 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2317
1826 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2318
1827 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2319
1828 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2320
1829 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2321
1830 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2322
1831 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2323
1832 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2324
1833 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2325
1834 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2326
1835 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2327
1836 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2328
1837 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2329
1838 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2330
1839 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2331
1840 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2332
1841 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2333
1842 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2334
1843 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2335
1844 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2336
1845 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2337
1846 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2338
1847 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2339
1848 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2340
1849 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2341
1850 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2342
1851 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2343
1852 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2344
1853 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2345
1854 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2346
1855 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2347
1856 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2348
1857 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2349
1858 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2350
1859 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2351
1860 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2353
1861 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2354
1862 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2355
1863 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2356
1864 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2358
1865 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2359
1866 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2360
1867 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2361
1868 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2362
1869 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2363
1870 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2364
1871 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2365
1872 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2366
1873 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2367
1874 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2368
1875 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2369
1876 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2370
1877 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2371
1878 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2372
1879 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2373
1880 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2374
1881 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2375
1882 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2376
1883 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2377
1884 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2378
1885 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2379
1886 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2380
1887 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2381
1888 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2382
1889 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2383
1890 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2384
1891 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2385
1892 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2386
1893 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2387
1894 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2388
1895 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2389
1896 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2390
1897 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2393
1898 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2394
1899 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2395
1900 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2397
1901 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2398
1902 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2399
1903 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2400
1904 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2401
1905 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2402
1906 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2403
1907 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2404
1908 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2405
1909 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2409
1910 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2410
1911 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2411
1912 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2412
1913 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2413
1914 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2414
1915 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2415
1916 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2416
1917 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2417
1918 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2418
1919 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2419
1920 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2420
1921 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2421
1922 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2422
1923 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2423
1924 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2424
1925 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2425
1926 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2426
1927 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2427
1928 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2428
1929 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2432
1930 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2438
1931 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2439
1932 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2440
1933 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2442
1934 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2445
1935 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2447
1936 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2448
1937 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2449
1938 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2450
1939 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2451
1940 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2452
1941 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2453
1942 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2454
1943 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2455
1944 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2456
1945 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2457
1946 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2463
1947 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2465
1948 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2466
1949 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2467
1950 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2468
1951 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2469
1952 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2470
1953 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2471
1954 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2472
1955 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2473
1956 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2474
1957 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2475
1958 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2476
1959 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2477
1960 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2478
1961 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2479
1962 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2480
1963 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2481
1964 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2482
1965 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2483
1966 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2484
1967 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2485
1968 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2486
1969 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2487
1970 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2488
1971 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2489
1972 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2490
1973 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2491
1974 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2492
1975 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2493
1976 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2494
1977 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2495
1978 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2496
1979 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2497
1980 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2498
1981 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2499
1982 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2500
1983 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2501
1984 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2502
1985 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2503
1986 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2504
1987 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2505
1988 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2507
1989 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2508
1990 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2509
1991 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2510
1992 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2511
1993 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2512
1994 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2513
1995 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2514
1996 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2515
1997 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2516
1998 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2517
1999 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2518
2000 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2519
2001 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2520
2002 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2521
2003 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2523
2004 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2524
2005 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2525
2006 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2526
2007 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2527
2008 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2528
2009 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2529
2010 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2530
2011 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2531
2012 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2532
2013 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2533
2014 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2534
2015 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2535
2016 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2536
2017 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2537
2018 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2538
2019 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2539
2020 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2540
2021 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2541
2022 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2542
2023 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2543
2024 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2546
2025 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2547
2026 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2548
2027 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2549
2028 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2550
2029 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2551
2030 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2552
2031 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2553
2032 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2563
2033 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2564
2034 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2569
2035 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2570
2036 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2571
2037 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2572
2038 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2573
2039 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2574
2040 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2575
2041 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2576
2042 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2577
2043 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2578
2044 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2579
2045 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2580
2046 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2581
2047 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2582
2048 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2583
2049 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2584
2050 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2585
2051 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2586
2052 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2587
2053 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2588
2054 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2589
2055 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2590
2056 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2591
2057 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2592
2058 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2593
2059 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2594
2060 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2595
2061 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2596
2062 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2597
2063 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2598
2064 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2599
2065 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2600
2066 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2601
2067 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2602
2068 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2603
2069 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2604
2070 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2605
2071 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2608
2072 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2609
2073 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2614
2074 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2615
2075 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2616
2076 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2617
2077 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2618
2078 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2619
2079 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2620
2080 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2621
2081 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2622
2082 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2623
2083 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2624
2084 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2625
2085 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2626
2086 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2627
2087 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2628
2088 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2629
2089 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2630
2090 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2631
2091 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2632
2092 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2633
2093 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2634
2094 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2635
2095 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2636
2096 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2637
2097 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2638
2098 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2639
2099 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2640
2100 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2641
2101 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2642
2102 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2643
2103 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2644
2104 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2645
2105 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2646
2106 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2647
2107 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2648
2108 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2649
2109 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2650
2110 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2651
2111 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2652
2112 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2653
2113 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2654
2114 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2655
2115 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2656
2116 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2657
2117 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2658
2118 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2659
2119 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2660
2120 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2661
2121 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2666
2122 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2667
2123 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2671
2124 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2676
2125 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2677
2126 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2678
2127 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2679
2128 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2680
2129 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2681
2130 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2682
2131 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2683
2132 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2684
2133 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2685
2134 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2686
2135 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2687
2136 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2688
2137 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2689
2138 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2690
2139 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2691
2140 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2692
2141 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2693
2142 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2694
2143 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2695
2144 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2696
2145 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2697
2146 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2698
2147 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2699
2148 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2700
2149 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2701
2150 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2702
2151 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2703
2152 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2704
2153 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2705
2154 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2706
2155 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2707
2156 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2714
2157 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2715
2158 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2716
2159 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2717
2160 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2718
2161 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2719
2162 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2720
2163 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2721
2164 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2725
2165 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2726
2166 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2727
2167 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2728
2168 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2730
2169 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2733
2170 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2734
2171 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2735
2172 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2736
2173 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2739
2174 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2741
2175 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2742
2176 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2743
2177 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2744
2178 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2747
2179 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2748
2180 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2750
2181 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2751
2182 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2752
2183 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2753
2184 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2754
2185 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2755
2186 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2756
2187 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2757
2188 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2758
2189 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2759
2190 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2760
2191 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2761
2192 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2762
2193 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2763
2194 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2764
2195 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2765
2196 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2766
2197 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2767
2198 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2768
2199 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2769
2200 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2770
2201 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2771
2202 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2772
2203 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2773
2204 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2774
2205 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2775
2206 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2776
2207 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2777
2208 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2778
2209 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2779
2210 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2780
2211 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2781
2212 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2782
2213 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2783
2214 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2784
2215 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2785
2216 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2786
2217 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2787
2218 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2788
2219 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2789
2220 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2790
2221 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2791
2222 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2792
2223 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2793
2224 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2794
2225 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2795
2226 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2796
2227 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2797
2228 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2798
2229 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2799
2230 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2800
2231 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2801
2232 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2802
2233 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2803
2234 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2804
2235 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2805
2236 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2806
2237 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2807
2238 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2808
2239 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2811
2240 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2812
2241 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2813
2242 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2814
2243 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2815
2244 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2816
2245 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2817
2246 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2818
2247 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2819
2248 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2820
2249 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2821
2250 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2822
2251 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2823
2252 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2824
2253 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2825
2254 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2826
2255 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2827
2256 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2828
2257 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2829
2258 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2830
2259 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2831
2260 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2832
2261 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2833
2262 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2834
2263 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2835
2264 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2836
2265 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2837
2266 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2838
2267 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2839
2268 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2840
2269 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2841
2270 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2842
2271 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2843
2272 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2844
2273 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2845
2274 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2846
2275 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2847
2276 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2848
2277 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2849
2278 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2850
2279 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2851
2280 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2852
2281 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2854
2282 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2855
2283 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2856
2284 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2857
2285 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2858
2286 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2859
2287 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2860
2288 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2861
2289 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2862
2290 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2863
2291 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2864
2292 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2865
2293 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2866
2294 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2867
2295 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2869
2296 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2871
2297 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2872
2298 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2873
2299 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2874
2300 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2875
2301 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2876
2302 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2877
2303 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2878
2304 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2879
2305 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2880
2306 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2881
2307 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2882
2308 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2883
2309 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2884
2310 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2885
2311 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2886
2312 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2887
2313 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2889
2314 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2890
2315 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2891
2316 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2892
2317 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2893
2318 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2898
2319 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2903
2320 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2906
2321 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2907
2322 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2908
2323 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2909
2324 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2911
2325 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2912
2326 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2913
2327 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2914
2328 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2915
2329 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2916
2330 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2917
2331 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2918
2332 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2919
2333 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2920
2334 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2921
2335 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2922
2336 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2923
2337 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2924
2338 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2925
2339 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2926
2340 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2927
2341 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2928
2342 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2929
2343 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2930
2344 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2931
2345 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2932
2346 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2933
2347 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2934
2348 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2935
2349 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2936
2350 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2937
2351 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2938
2352 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2939
2353 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2940
2354 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2941
2355 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2942
2356 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2943
2357 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2944
2358 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2945
2359 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2946
2360 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2947
2361 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2948
2362 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2949
2363 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2950
2364 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2951
2365 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2952
2366 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2953
2367 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2954
2368 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2955
2369 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2956
2370 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2957
2371 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2958
2372 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2959
2373 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2960
2374 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2961
2375 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2962
2376 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2963
2377 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2964
2378 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2965
2379 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2966
2380 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2967
2381 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2968
2382 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2969
2383 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2970
2384 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2971
2385 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2972
2386 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2973
2387 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2974
2388 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2975
2389 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2976
2390 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2977
2391 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2978
2392 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2979
2393 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2980
2394 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2981
2395 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2982
2396 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2983
2397 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2984
2398 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2985
2399 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2986
2400 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2987
2401 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2988
2402 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2989
2403 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2990
2404 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2991
2405 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2992
2406 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2993
2407 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2994
2408 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2995
2409 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2996
2410 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2997
2411 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2998
2412 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:2999
2413 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3000
2414 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3001
2415 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3002
2416 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3003
2417 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3004
2418 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3005
2419 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3006
2420 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3007
2421 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3008
2422 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3009
2423 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3010
2424 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3011
2425 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3012
2426 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3013
2427 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3014
2428 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3015
2429 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3016
2430 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3017
2431 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3018
2432 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3019
2433 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3020
2434 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3021
2435 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3022
2436 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3023
2437 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3024
2438 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3025
2439 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3026
2440 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3027
2441 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3028
2442 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3029
2443 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3030
2444 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3031
2445 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3032
2446 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3033
2447 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3034
2448 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3038
2449 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3039
2450 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3040
2451 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3041
2452 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3042
2453 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3043
2454 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3044
2455 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3045
2456 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3046
2457 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3047
2458 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3055
2459 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3056
2460 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3057
2461 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3058
2462 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3059
2463 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3060
2464 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3061
2465 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3062
2466 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3063
2467 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3064
2468 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3065
2469 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3066
2470 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3067
2471 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3068
2472 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3069
2473 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3070
2474 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3071
2475 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3072
2476 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3073
2477 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3074
2478 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3075
2479 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3076
2480 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3077
2481 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3078
2482 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3079
2483 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3080
2484 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3081
2485 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3082
2486 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3083
2487 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3084
2488 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3085
2489 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3086
2490 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3087
2491 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3088
2492 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3089
2493 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3090
2494 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3091
2495 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3092
2496 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3093
2497 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3094
2498 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3095
2499 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3096
2500 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3097
2501 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3098
2502 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3099
2503 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3100
2504 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3101
2505 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3102
2506 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3103
2507 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3104
2508 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3105
2509 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3106
2510 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3107
2511 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3108
2512 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3109
2513 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3110
2514 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3111
2515 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3112
2516 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3113
2517 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3114
2518 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3115
2519 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3116
2520 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3117
2521 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3118
2522 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3119
2523 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3120
2524 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3121
2525 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3122
2526 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3123
2527 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3124
2528 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3125
2529 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3126
2530 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3127
2531 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3128
2532 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3129
2533 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3130
2534 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3131
2535 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3132
2536 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3133
2537 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3134
2538 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3135
2539 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3136
2540 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3137
2541 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3138
2542 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3139
2543 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3140
2544 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3141
2545 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3142
2546 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3143
2547 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3144
2548 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3145
2549 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3146
2550 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3147
2551 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3148
2552 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3149
2553 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3150
2554 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3151
2555 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3152
2556 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3153
2557 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3154
2558 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3155
2559 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3156
2560 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3157
2561 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3158
2562 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3159
2563 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3160
2564 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3161
2565 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3162
2566 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3163
2567 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3164
2568 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3165
2569 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3166
2570 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3167
2571 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3168
2572 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3169
2573 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3170
2574 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3171
2575 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3172
2576 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3173
2577 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3174
2578 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3175
2579 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3176
2580 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3177
2581 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3178
2582 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3179
2583 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3180
2584 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3181
2585 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3182
2586 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3183
2587 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3184
2588 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3185
2589 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3186
2590 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3187
2591 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3188
2592 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3189
2593 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3190
2594 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3191
2595 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3192
2596 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3193
2597 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3194
2598 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3195
2599 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3196
2600 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3197
2601 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3198
2602 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3199
2603 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3200
2604 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3201
2605 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3202
2606 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3203
2607 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3204
2608 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3205
2609 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3206
2610 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3207
2611 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3208
2612 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3209
2613 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3210
2614 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3214
2615 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3215
2616 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3216
2617 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3217
2618 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3218
2619 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3219
2620 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3220
2621 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3221
2622 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3222
2623 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3223
2624 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3224
2625 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3225
2626 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3226
2627 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3227
2628 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3228
2629 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3229
2630 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3230
2631 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3231
2632 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3232
2633 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3233
2634 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3234
2635 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3235
2636 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3238
2637 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3243
2638 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3244
2639 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3245
2640 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3246
2641 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3247
2642 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3248
2643 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3249
2644 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3250
2645 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3251
2646 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3252
2647 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3253
2648 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3254
2649 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3257
2650 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3258
2651 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3259
2652 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3260
2653 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3262
2654 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3265
2655 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3266
2656 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3267
2657 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3268
2658 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3269
2659 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3270
2660 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3271
2661 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3272
2662 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3273
2663 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3274
2664 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3275
2665 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3276
2666 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3277
2667 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3278
2668 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3279
2669 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3280
2670 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3281
2671 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3282
2672 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3283
2673 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3284
2674 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3287
2675 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3288
2676 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3289
2677 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3290
2678 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3291
2679 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3292
2680 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3293
2681 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3294
2682 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3295
2683 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3296
2684 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3297
2685 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3298
2686 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3299
2687 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3300
2688 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3301
2689 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3302
2690 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3303
2691 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3304
2692 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3305
2693 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3306
2694 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3307
2695 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3308
2696 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3309
2697 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3310
2698 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3311
2699 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3312
2700 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3313
2701 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3314
2702 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3315
2703 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3316
2704 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3317
2705 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3318
2706 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3319
2707 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3320
2708 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3321
2709 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3322
2710 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3323
2711 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3324
2712 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3325
2713 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3326
2714 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3327
2715 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3328
2716 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3329
2717 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3330
2718 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3331
2719 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3332
2720 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3333
2721 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3334
2722 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3335
2723 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3336
2724 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3337
2725 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3338
2726 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3339
2727 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3340
2728 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3341
2729 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3342
2730 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3343
2731 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3344
2732 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3345
2733 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3346
2734 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3347
2735 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3348
2736 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3349
2737 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3350
2738 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3351
2739 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3352
2740 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3353
2741 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3354
2742 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3355
2743 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3356
2744 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3357
2745 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3358
2746 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3359
2747 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3360
2748 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3361
2749 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3362
2750 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3363
2751 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3364
2752 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3366
2753 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3370
2754 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3371
2755 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3372
2756 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3373
2757 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3374
2758 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3375
2759 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3376
2760 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3377
2761 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3378
2762 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3379
2763 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3380
2764 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3381
2765 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3382
2766 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3383
2767 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3384
2768 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3385
2769 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3386
2770 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3387
2771 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3388
2772 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3389
2773 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3390
2774 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3391
2775 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3392
2776 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3393
2777 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3394
2778 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3395
2779 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3396
2780 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3397
2781 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3398
2782 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3399
2783 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3400
2784 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3401
2785 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3402
2786 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3403
2787 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3404
2788 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3405
2789 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3406
2790 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3407
2791 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3408
2792 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3409
2793 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3410
2794 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3411
2795 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3412
2796 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3413
2797 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3414
2798 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3415
2799 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3416
2800 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3417
2801 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3418
2802 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3419
2803 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3420
2804 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3421
2805 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3422
2806 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3423
2807 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3424
2808 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3425
2809 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3426
2810 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3427
2811 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3428
2812 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3429
2813 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3430
2814 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3431
2815 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3432
2816 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3433
2817 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3434
2818 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3435
2819 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3436
2820 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3437
2821 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3438
2822 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3439
2823 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3440
2824 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3441
2825 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3442
2826 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3443
2827 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3444
2828 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3445
2829 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3446
2830 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3447
2831 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3448
2832 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3449
2833 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3450
2834 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3451
2835 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3452
2836 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3453
2837 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3454
2838 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3455
2839 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3456
2840 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3457
2841 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3458
2842 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3459
2843 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3460
2844 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3461
2845 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3462
2846 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3463
2847 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3464
2848 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3465
2849 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3466
2850 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3467
2851 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3468
2852 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3469
2853 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3470
2854 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3471
2855 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3474
2856 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3475
2857 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3476
2858 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3477
2859 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3478
2860 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3479
2861 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3480
2862 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3481
2863 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3482
2864 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3483
2865 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3484
2866 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3485
2867 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3486
2868 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3487
2869 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3488
2870 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3489
2871 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3490
2872 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3491
2873 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3492
2874 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3493
2875 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3494
2876 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3495
2877 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3496
2878 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3497
2879 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3498
2880 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3499
2881 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3500
2882 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3501
2883 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3502
2884 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3503
2885 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3505
2886 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3506
2887 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3507
2888 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3509
2889 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3510
2890 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3511
2891 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3512
2892 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3513
2893 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3514
2894 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3515
2895 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3516
2896 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3517
2897 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3518
2898 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3519
2899 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3520
2900 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3521
2901 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3522
2902 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3523
2903 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3524
2904 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3525
2905 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3526
2906 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3527
2907 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3528
2908 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3529
2909 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3530
2910 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3531
2911 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3532
2912 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3533
2913 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3534
2914 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3535
2915 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3536
2916 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3537
2917 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3538
2918 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3539
2919 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3540
2920 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3541
2921 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3542
2922 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3543
2923 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3544
2924 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3545
2925 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3546
2926 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3547
2927 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3548
2928 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3549
2929 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3550
2930 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3551
2931 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3553
2932 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3554
2933 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3555
2934 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3556
2935 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3557
2936 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3558
2937 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3559
2938 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3560
2939 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3561
2940 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3562
2941 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3563
2942 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3564
2943 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3565
2944 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3566
2945 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3567
2946 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3569
2947 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3570
2948 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3571
2949 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3575
2950 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3576
2951 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3577
2952 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3579
2953 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3580
2954 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3581
2955 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3582
2956 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3583
2957 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3584
2958 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3587
2959 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3588
2960 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3589
2961 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3590
2962 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3591
2963 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3595
2964 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3596
2965 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3597
2966 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3598
2967 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3599
2968 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3600
2969 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3601
2970 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3602
2971 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3604
2972 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3605
2973 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3606
2974 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3607
2975 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3608
2976 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3609
2977 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3610
2978 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3611
2979 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3612
2980 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3613
2981 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3614
2982 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3615
2983 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3616
2984 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3617
2985 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3618
2986 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3619
2987 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3620
2988 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3622
2989 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3623
2990 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3624
2991 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3625
2992 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3626
2993 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3627
2994 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3628
2995 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3629
2996 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3630
2997 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3632
2998 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3633
2999 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3634
3000 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3636
3001 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3637
3002 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3638
3003 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3639
3004 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3640
3005 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3641
3006 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3642
3007 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3643
3008 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3644
3009 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3645
3010 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3646
3011 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3647
3012 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3648
3013 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3649
3014 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3650
3015 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3651
3016 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3652
3017 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3653
3018 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3654
3019 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3655
3020 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3656
3021 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3657
3022 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3658
3023 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3659
3024 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3660
3025 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3661
3026 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3662
3027 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3663
3028 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3664
3029 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3665
3030 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3666
3031 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3667
3032 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3668
3033 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3669
3034 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3670
3035 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3671
3036 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3672
3037 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3673
3038 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3674
3039 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3675
3040 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3676
3041 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3677
3042 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3678
3043 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3679
3044 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3680
3045 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3681
3046 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3682
3047 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3683
3048 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3684
3049 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3685
3050 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3686
3051 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3687
3052 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3688
3053 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3689
3054 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3690
3055 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3691
3056 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3692
3057 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3693
3058 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3694
3059 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3695
3060 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3696
3061 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3697
3062 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3698
3063 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3699
3064 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3700
3065 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3701
3066 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3702
3067 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3703
3068 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3704
3069 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3705
3070 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3706
3071 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3707
3072 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3708
3073 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3709
3074 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3710
3075 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3711
3076 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3712
3077 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3713
3078 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3714
3079 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3715
3080 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3716
3081 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3717
3082 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3718
3083 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3719
3084 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3720
3085 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3724
3086 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3725
3087 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3726
3088 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3727
3089 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3728
3090 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3729
3091 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3730
3092 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3731
3093 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3732
3094 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3738
3095 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3739
3096 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3740
3097 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3741
3098 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3742
3099 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3743
3100 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3744
3101 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3745
3102 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3746
3103 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3747
3104 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3748
3105 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3749
3106 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3750
3107 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3751
3108 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3752
3109 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3753
3110 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3754
3111 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3755
3112 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3756
3113 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3757
3114 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3758
3115 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3759
3116 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3760
3117 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3761
3118 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3762
3119 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3763
3120 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3764
3121 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3765
3122 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3766
3123 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3767
3124 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3768
3125 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3769
3126 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3770
3127 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3771
3128 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3772
3129 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3773
3130 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3774
3131 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3775
3132 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3776
3133 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3777
3134 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3778
3135 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3779
3136 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3780
3137 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3781
3138 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3787
3139 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3788
3140 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3789
3141 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3790
3142 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3791
3143 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3792
3144 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3793
3145 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3794
3146 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3795
3147 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3796
3148 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3797
3149 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3798
3150 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3799
3151 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3800
3152 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3801
3153 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3802
3154 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3803
3155 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3804
3156 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3805
3157 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3806
3158 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3807
3159 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3808
3160 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3809
3161 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3810
3162 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3811
3163 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3812
3164 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3813
3165 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3814
3166 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3815
3167 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3816
3168 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3817
3169 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3818
3170 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3819
3171 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3820
3172 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3821
3173 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3822
3174 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3823
3175 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3824
3176 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3825
3177 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3826
3178 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3827
3179 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3828
3180 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3829
3181 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3830
3182 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3831
3183 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3832
3184 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3833
3185 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3834
3186 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3835
3187 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3836
3188 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3837
3189 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3838
3190 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3839
3191 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3842
3192 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3843
3193 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3844
3194 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3845
3195 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3846
3196 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3847
3197 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3848
3198 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3849
3199 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3850
3200 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3851
3201 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3852
3202 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3853
3203 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3854
3204 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3855
3205 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3856
3206 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3857
3207 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3858
3208 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3859
3209 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3860
3210 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3861
3211 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3862
3212 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3863
3213 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3864
3214 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3865
3215 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3866
3216 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3867
3217 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3868
3218 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3869
3219 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3870
3220 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3871
3221 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3872
3222 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3873
3223 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3874
3224 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3875
3225 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3876
3226 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3877
3227 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3878
3228 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3879
3229 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3880
3230 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3881
3231 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3882
3232 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3883
3233 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3884
3234 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3885
3235 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3886
3236 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3887
3237 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3888
3238 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3889
3239 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3890
3240 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3891
3241 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3892
3242 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3893
3243 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3894
3244 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3895
3245 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3896
3246 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3897
3247 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3898
3248 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3899
3249 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3900
3250 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3901
3251 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3902
3252 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3903
3253 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3904
3254 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3905
3255 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3906
3256 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3907
3257 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3908
3258 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3909
3259 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3910
3260 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3911
3261 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3912
3262 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3913
3263 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3914
3264 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3915
3265 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3916
3266 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3917
3267 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3918
3268 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3919
3269 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3920
3270 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3921
3271 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3922
3272 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3923
3273 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3924
3274 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3925
3275 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3926
3276 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3927
3277 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3928
3278 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3929
3279 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3930
3280 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3931
3281 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3932
3282 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3933
3283 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3936
3284 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3937
3285 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3938
3286 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3939
3287 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3940
3288 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3941
3289 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3942
3290 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3943
3291 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3944
3292 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3945
3293 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3946
3294 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3947
3295 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3948
3296 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3949
3297 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3950
3298 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3951
3299 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3952
3300 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3953
3301 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3954
3302 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3955
3303 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3956
3304 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3957
3305 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3958
3306 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3962
3307 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3963
3308 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3964
3309 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3965
3310 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3966
3311 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3967
3312 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3968
3313 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3969
3314 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3970
3315 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3971
3316 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3972
3317 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3973
3318 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3974
3319 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3975
3320 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3976
3321 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3977
3322 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3978
3323 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3979
3324 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3980
3325 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3981
3326 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3982
3327 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3983
3328 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3984
3329 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3985
3330 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3986
3331 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3987
3332 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3988
3333 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3989
3334 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3990
3335 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3991
3336 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3992
3337 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3993
3338 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3994
3339 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3995
3340 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3996
3341 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3997
3342 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3998
3343 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:3999
3344 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4000
3345 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4001
3346 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4002
3347 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4003
3348 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4004
3349 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4005
3350 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4006
3351 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4007
3352 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4008
3353 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4009
3354 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4010
3355 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4011
3356 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4012
3357 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4013
3358 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4014
3359 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4015
3360 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4016
3361 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4017
3362 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4018
3363 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4019
3364 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4020
3365 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4021
3366 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4022
3367 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4023
3368 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4024
3369 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4025
3370 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4026
3371 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4027
3372 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4028
3373 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4029
3374 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4030
3375 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4031
3376 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4032
3377 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4033
3378 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4034
3379 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4035
3380 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4036
3381 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4037
3382 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4038
3383 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4039
3384 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4040
3385 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4041
3386 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4042
3387 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4043
3388 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4044
3389 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4045
3390 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4046
3391 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4047
3392 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4048
3393 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4049
3394 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4050
3395 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4051
3396 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4052
3397 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4053
3398 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4054
3399 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4055
3400 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4056
3401 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4057
3402 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4058
3403 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4059
3404 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4060
3405 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4061
3406 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4062
3407 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4063
3408 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4064
3409 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4065
3410 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4066
3411 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4067
3412 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4068
3413 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4069
3414 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4070
3415 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4071
3416 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4072
3417 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4073
3418 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4074
3419 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4075
3420 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4076
3421 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4077
3422 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4078
3423 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4079
3424 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4080
3425 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4081
3426 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4082
3427 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4083
3428 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4084
3429 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4085
3430 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4086
3431 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4087
3432 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4088
3433 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4089
3434 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4090
3435 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4091
3436 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4092
3437 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4093
3438 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4094
3439 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4095
3440 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4096
3441 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4097
3442 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4098
3443 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4099
3444 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4100
3445 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4101
3446 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4102
3447 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4103
3448 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4104
3449 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4105
3450 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4106
3451 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4107
3452 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4108
3453 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4109
3454 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4110
3455 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4111
3456 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4112
3457 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4113
3458 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4114
3459 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4115
3460 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4116
3461 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4117
3462 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4118
3463 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4120
3464 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4121
3465 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4122
3466 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4123
3467 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4124
3468 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4125
3469 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4126
3470 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4127
3471 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4128
3472 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4129
3473 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4130
3474 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4131
3475 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4132
3476 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4133
3477 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4134
3478 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4135
3479 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4136
3480 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4137
3481 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4138
3482 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4139
3483 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4140
3484 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4141
3485 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4142
3486 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4143
3487 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4144
3488 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4145
3489 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4146
3490 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4147
3491 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4148
3492 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4149
3493 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4150
3494 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4151
3495 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4152
3496 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4153
3497 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4154
3498 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4155
3499 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4156
3500 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4157
3501 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4158
3502 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4159
3503 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4160
3504 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4161
3505 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4166
3506 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4167
3507 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4168
3508 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4169
3509 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4170
3510 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4171
3511 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4172
3512 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4173
3513 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4174
3514 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4175
3515 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4176
3516 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4177
3517 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4178
3518 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4179
3519 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4180
3520 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4181
3521 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4182
3522 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4183
3523 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4184
3524 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4185
3525 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4186
3526 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4187
3527 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4188
3528 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4189
3529 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4190
3530 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4191
3531 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4192
3532 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4193
3533 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4194
3534 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4195
3535 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4196
3536 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4197
3537 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4198
3538 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4199
3539 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4200
3540 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4201
3541 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4202
3542 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4203
3543 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4204
3544 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4205
3545 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4206
3546 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4207
3547 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4208
3548 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4209
3549 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4210
3550 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4211
3551 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4212
3552 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4213
3553 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4214
3554 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4215
3555 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4216
3556 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4217
3557 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4218
3558 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4219
3559 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4220
3560 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4221
3561 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4222
3562 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4223
3563 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4224
3564 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4225
3565 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4226
3566 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4227
3567 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4228
3568 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4229
3569 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4230
3570 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4231
3571 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4232
3572 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4233
3573 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4234
3574 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4235
3575 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4236
3576 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4237
3577 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4238
3578 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4239
3579 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4240
3580 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4241
3581 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4242
3582 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4243
3583 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4244
3584 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4245
3585 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4246
3586 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4247
3587 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4248
3588 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4249
3589 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4250
3590 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4251
3591 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4252
3592 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4259
3593 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4260
3594 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4261
3595 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4262
3596 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4263
3597 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4264
3598 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4265
3599 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4266
3600 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4267
3601 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4268
3602 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4269
3603 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4270
3604 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4271
3605 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4272
3606 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4273
3607 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4274
3608 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4275
3609 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4276
3610 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4277
3611 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4278
3612 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4279
3613 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4280
3614 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4281
3615 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4282
3616 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4283
3617 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4284
3618 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4285
3619 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4286
3620 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4287
3621 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4288
3622 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4289
3623 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4290
3624 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4291
3625 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4292
3626 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4293
3627 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4294
3628 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4295
3629 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4296
3630 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4297
3631 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4298
3632 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4299
3633 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4300
3634 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4301
3635 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4302
3636 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4303
3637 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4304
3638 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4305
3639 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4306
3640 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4307
3641 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4309
3642 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4312
3643 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4313
3644 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4314
3645 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4315
3646 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4316
3647 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4317
3648 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4318
3649 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4319
3650 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4320
3651 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4321
3652 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4322
3653 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4323
3654 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4324
3655 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4325
3656 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4326
3657 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4327
3658 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4328
3659 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4329
3660 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4330
3661 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4331
3662 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4332
3663 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4333
3664 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4334
3665 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4335
3666 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4336
3667 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4337
3668 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4338
3669 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4339
3670 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4340
3671 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4341
3672 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4342
3673 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4343
3674 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4344
3675 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4345
3676 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4346
3677 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4347
3678 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4348
3679 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4349
3680 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4350
3681 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4351
3682 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4352
3683 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4353
3684 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4354
3685 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4355
3686 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4356
3687 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4357
3688 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4358
3689 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4359
3690 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4360
3691 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4361
3692 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4362
3693 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4363
3694 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4364
3695 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4365
3696 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4366
3697 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4367
3698 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4368
3699 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4369
3700 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4370
3701 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4371
3702 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4372
3703 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4373
3704 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4374
3705 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4375
3706 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4376
3707 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4377
3708 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4378
3709 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4379
3710 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4380
3711 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4381
3712 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4382
3713 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4383
3714 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4384
3715 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4385
3716 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4386
3717 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4387
3718 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4388
3719 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4389
3720 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4390
3721 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4391
3722 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4392
3723 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4393
3724 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4394
3725 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4395
3726 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4396
3727 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4397
3728 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4398
3729 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4399
3730 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4400
3731 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4401
3732 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4402
3733 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4403
3734 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4404
3735 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4405
3736 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4406
3737 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4407
3738 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4408
3739 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4409
3740 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4410
3741 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4411
3742 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4412
3743 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4413
3744 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4414
3745 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4415
3746 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4416
3747 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4417
3748 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4418
3749 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4419
3750 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4420
3751 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4421
3752 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4422
3753 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4423
3754 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4424
3755 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4425
3756 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4426
3757 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4427
3758 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4428
3759 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4429
3760 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4430
3761 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4431
3762 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4432
3763 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4433
3764 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4434
3765 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4435
3766 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4436
3767 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4437
3768 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4438
3769 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4439
3770 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4440
3771 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4441
3772 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4442
3773 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4443
3774 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4444
3775 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4445
3776 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4446
3777 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4447
3778 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4448
3779 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4449
3780 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4450
3781 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4451
3782 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4452
3783 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4453
3784 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4454
3785 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4455
3786 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4456
3787 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4457
3788 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4458
3789 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4459
3790 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4460
3791 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4461
3792 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4462
3793 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4463
3794 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4464
3795 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4465
3796 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4466
3797 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4467
3798 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4468
3799 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4469
3800 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4470
3801 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4471
3802 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4472
3803 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4473
3804 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4474
3805 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4475
3806 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4476
3807 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4477
3808 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4478
3809 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4479
3810 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4480
3811 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4481
3812 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4482
3813 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4483
3814 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4484
3815 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4485
3816 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4486
3817 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4487
3818 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4488
3819 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4489
3820 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4490
3821 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4491
3822 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4492
3823 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4493
3824 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4494
3825 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4495
3826 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4496
3827 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4497
3828 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4498
3829 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4499
3830 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4500
3831 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4501
3832 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4502
3833 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4503
3834 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4504
3835 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4505
3836 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4506
3837 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4507
3838 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4508
3839 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4509
3840 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4510
3841 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4511
3842 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4512
3843 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4513
3844 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4514
3845 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4515
3846 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4516
3847 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4517
3848 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4518
3849 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4519
3850 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4520
3851 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4521
3852 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4522
3853 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4523
3854 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4524
3855 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4525
3856 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4526
3857 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4527
3858 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4528
3859 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4529
3860 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4530
3861 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4531
3862 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4532
3863 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4534
3864 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4535
3865 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4536
3866 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4537
3867 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4538
3868 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4539
3869 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4540
3870 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4541
3871 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4542
3872 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4543
3873 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4544
3874 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4545
3875 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4546
3876 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4547
3877 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4548
3878 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4549
3879 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4550
3880 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4551
3881 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4552
3882 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4553
3883 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4554
3884 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4555
3885 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4556
3886 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4557
3887 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4558
3888 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4559
3889 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4560
3890 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4561
3891 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4562
3892 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4563
3893 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4564
3894 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4565
3895 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4566
3896 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4567
3897 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4568
3898 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4569
3899 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4570
3900 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4571
3901 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4572
3902 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4573
3903 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4574
3904 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4575
3905 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4576
3906 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4577
3907 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4578
3908 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4579
3909 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4580
3910 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4581
3911 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4582
3912 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4583
3913 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4584
3914 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4585
3915 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4586
3916 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4587
3917 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4588
3918 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4589
3919 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4593
3920 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4594
3921 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4595
3922 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4596
3923 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4597
3924 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4598
3925 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4600
3926 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4601
3927 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4602
3928 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4603
3929 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4604
3930 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4605
3931 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4606
3932 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4607
3933 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4608
3934 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4609
3935 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4610
3936 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4611
3937 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4612
3938 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4614
3939 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4617
3940 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4618
3941 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4619
3942 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4620
3943 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4621
3944 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4622
3945 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4623
3946 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4624
3947 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4625
3948 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4626
3949 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4627
3950 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4628
3951 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4629
3952 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4631
3953 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4639
3954 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4640
3955 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4641
3956 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4642
3957 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4645
3958 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4646
3959 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4647
3960 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4648
3961 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4649
3962 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4650
3963 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4652
3964 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4653
3965 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4654
3966 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4655
3967 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4658
3968 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4660
3969 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4662
3970 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4663
3971 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4664
3972 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4665
3973 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4666
3974 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4667
3975 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4669
3976 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4672
3977 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4674
3978 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4676
3979 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4682
3980 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4683
3981 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4684
3982 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4685
3983 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4686
3984 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4690
3985 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4691
3986 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4694
3987 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4695
3988 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4696
3989 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4697
3990 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4698
3991 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4699
3992 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4700
3993 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4701
3994 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4702
3995 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4703
3996 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4704
3997 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4705
3998 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4706
3999 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4707
4000 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4709
4001 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4710
4002 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4711
4003 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4712
4004 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4713
4005 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4714
4006 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4715
4007 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4716
4008 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4719
4009 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4720
4010 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4721
4011 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4722
4012 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4723
4013 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4724
4014 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4725
4015 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4726
4016 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4727
4017 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4728
4018 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4729
4019 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4730
4020 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4731
4021 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4732
4022 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4733
4023 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4735
4024 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4736
4025 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4737
4026 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4738
4027 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4739
4028 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4740
4029 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4741
4030 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4742
4031 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4743
4032 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4744
4033 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4745
4034 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4746
4035 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4747
4036 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4749
4037 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4751
4038 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4752
4039 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4753
4040 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4754
4041 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4755
4042 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4756
4043 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4758
4044 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4759
4045 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4760
4046 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4761
4047 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4762
4048 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4763
4049 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4764
4050 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4765
4051 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4766
4052 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4767
4053 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4768
4054 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4769
4055 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4771
4056 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4773
4057 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4775
4058 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4777
4059 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4778
4060 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4781
4061 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4783
4062 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4785
4063 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4787
4064 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4789
4065 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4790
4066 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4791
4067 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4792
4068 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4793
4069 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4795
4070 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4796
4071 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4797
4072 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4798
4073 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4799
4074 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4800
4075 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4801
4076 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4802
4077 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4803
4078 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4804
4079 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4805
4080 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4806
4081 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4807
4082 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4808
4083 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4809
4084 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4810
4085 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4811
4086 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4812
4087 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4813
4088 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4814
4089 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4815
4090 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4816
4091 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4818
4092 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4819
4093 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4820
4094 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4821
4095 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4822
4096 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4823
4097 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4824
4098 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4826
4099 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4827
4100 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4830
4101 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4834
4102 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4835
4103 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4836
4104 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4837
4105 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4839
4106 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4840
4107 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4841
4108 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4843
4109 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4844
4110 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4850
4111 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4851
4112 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4852
4113 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4855
4114 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4857
4115 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4859
4116 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4860
4117 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4861
4118 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4864
4119 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4868
4120 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4869
4121 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4870
4122 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4871
4123 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4872
4124 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4873
4125 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4874
4126 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4875
4127 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4876
4128 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4877
4129 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4878
4130 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4879
4131 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4880
4132 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4881
4133 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4882
4134 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4884
4135 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4885
4136 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4886
4137 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4887
4138 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4888
4139 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4889
4140 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4890
4141 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4891
4142 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4892
4143 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4894
4144 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4895
4145 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4897
4146 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4899
4147 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4903
4148 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4910
4149 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4911
4150 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4912
4151 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4913
4152 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4916
4153 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4920
4154 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4921
4155 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4925
4156 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4926
4157 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4931
4158 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4933
4159 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4934
4160 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4935
4161 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4936
4162 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4937
4163 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4938
4164 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4940
4165 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4942
4166 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4957
4167 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4959
4168 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4960
4169 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4961
4170 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4963
4171 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4964
4172 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4965
4173 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4966
4174 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4968
4175 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4972
4176 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4973
4177 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4975
4178 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4981
4179 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4983
4180 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4984
4181 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4985
4182 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4987
4183 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4990
4184 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4991
4185 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4992
4186 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4993
4187 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4995
4188 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:4996
4189 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5000
4190 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5001
4191 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5004
4192 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5007
4193 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5008
4194 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5010
4195 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5011
4196 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5015
4197 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5018
4198 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5019
4199 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5020
4200 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5021
4201 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5023
4202 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5026
4203 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5027
4204 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5028
4205 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5029
4206 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5030
4207 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5031
4208 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5032
4209 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5033
4210 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5034
4211 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5035
4212 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5036
4213 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5038
4214 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5039
4215 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5040
4216 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5042
4217 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5044
4218 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5047
4219 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5049
4220 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5050
4221 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5052
4222 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5053
4223 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5055
4224 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5056
4225 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5058
4226 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5060
4227 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5063
4228 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5066
4229 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5068
4230 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5071
4231 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5072
4232 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5075
4233 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5076
4234 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5078
4235 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5082
4236 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5083
4237 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5085
4238 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5087
4239 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5088
4240 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5091
4241 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5093
4242 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5094
4243 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5096
4244 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5098
4245 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5099
4246 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5102
4247 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5103
4248 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5104
4249 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5107
4250 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5109
4251 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5110
4252 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5111
4253 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5113
4254 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5114
4255 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5117
4256 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5118
4257 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5119
4258 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5122
4259 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5123
4260 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5125
4261 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5127
4262 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5128
4263 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5129
4264 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5133
4265 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5135
4266 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5136
4267 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5138
4268 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5140
4269 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5143
4270 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5145
4271 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5147
4272 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5150
4273 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5152
4274 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5153
4275 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5154
4276 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5155
4277 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5156
4278 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5157
4279 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5158
4280 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5159
4281 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5160
4282 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5165
4283 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5167
4284 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5168
4285 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5169
4286 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5172
4287 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5174
4288 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5175
4289 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5176
4290 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5178
4291 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5181
4292 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5182
4293 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5183
4294 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5184
4295 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5185
4296 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5187
4297 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5188
4298 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5191
4299 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5193
4300 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5194
4301 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5196
4302 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5197
4303 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5199
4304 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5201
4305 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5202
4306 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5204
4307 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5205
4308 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5208
4309 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5209
4310 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5212
4311 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5214
4312 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5215
4313 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5217
4314 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5218
4315 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5222
4316 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5223
4317 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5225
4318 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5234
4319 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5235
4320 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5236
4321 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5238
4322 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5239
4323 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5241
4324 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5243
4325 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5244
4326 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5245
4327 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5247
4328 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5248
4329 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5250
4330 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5252
4331 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5253
4332 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5254
4333 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5256
4334 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5258
4335 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5259
4336 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5263
4337 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5265
4338 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5267
4339 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5268
4340 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5272
4341 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5275
4342 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5278
4343 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5280
4344 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5281
4345 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5282
4346 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5283
4347 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5284
4348 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5285
4349 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5286
4350 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5288
4351 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5289
4352 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5291
4353 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5292
4354 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5295
4355 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5297
4356 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5298
4357 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5303
4358 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5306
4359 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5308
4360 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5310
4361 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5311
4362 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5313
4363 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5315
4364 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5317
4365 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5318
4366 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5320
4367 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5322
4368 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5323
4369 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5324
4370 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5325
4371 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5326
4372 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5327
4373 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5328
4374 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5329
4375 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5330
4376 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5332
4377 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5334
4378 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5335
4379 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5337
4380 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5339
4381 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5340
4382 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5341
4383 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5342
4384 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5343
4385 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5344
4386 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5345
4387 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5346
4388 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5347
4389 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5348
4390 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5349
4391 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5350
4392 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5351
4393 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5352
4394 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5353
4395 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5357
4396 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5358
4397 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5362
4398 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5365
4399 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5367
4400 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5369
4401 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5372
4402 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5373
4403 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5375
4404 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5377
4405 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5379
4406 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5382
4407 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5383
4408 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5384
4409 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5386
4410 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5388
4411 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5389
4412 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5390
4413 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5391
4414 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5392
4415 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5393
4416 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5394
4417 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5395
4418 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5396
4419 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5397
4420 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5398
4421 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5399
4422 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5400
4423 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5401
4424 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5402
4425 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5404
4426 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5405
4427 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5408
4428 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5410
4429 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5412
4430 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5413
4431 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5415
4432 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5418
4433 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5419
4434 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5421
4435 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5422
4436 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5425
4437 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5426
4438 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5428
4439 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5432
4440 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5433
4441 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5434
4442 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5435
4443 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5436
4444 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5437
4445 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5438
4446 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5439
4447 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5440
4448 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5441
4449 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5442
4450 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5443
4451 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5444
4452 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5445
4453 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5446
4454 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5447
4455 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5448
4456 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5449
4457 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5450
4458 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5451
4459 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5452
4460 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5453
4461 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5454
4462 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5455
4463 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5456
4464 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5457
4465 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5458
4466 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5459
4467 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5460
4468 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5461
4469 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5462
4470 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5463
4471 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5464
4472 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5465
4473 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5466
4474 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5467
4475 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5471
4476 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5472
4477 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5474
4478 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5478
4479 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5479
4480 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5480
4481 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5481
4482 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5482
4483 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5483
4484 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5484
4485 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5485
4486 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5486
4487 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5487
4488 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5488
4489 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5489
4490 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5490
4491 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5491
4492 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5492
4493 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5493
4494 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5494
4495 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5495
4496 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5496
4497 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5497
4498 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5498
4499 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5499
4500 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5500
4501 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5501
4502 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5502
4503 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5503
4504 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5504
4505 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5505
4506 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5506
4507 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5507
4508 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5508
4509 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5509
4510 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5510
4511 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5511
4512 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5512
4513 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5513
4514 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5514
4515 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5515
4516 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5516
4517 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5517
4518 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5518
4519 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5519
4520 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5520
4521 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5521
4522 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5522
4523 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5523
4524 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5524
4525 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5529
4526 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5530
4527 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5531
4528 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5532
4529 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5533
4530 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5535
4531 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5536
4532 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5537
4533 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5543
4534 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5544
4535 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5549
4536 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5550
4537 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5551
4538 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5552
4539 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5556
4540 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5557
4541 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5558
4542 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5560
4543 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5562
4544 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5563
4545 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5564
4546 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5565
4547 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5566
4548 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5572
4549 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5598
4550 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5599
4551 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5600
4552 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5601
4553 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5602
4554 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5603
4555 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5620
4556 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5624
4557 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5625
4558 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5626
4559 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5627
4560 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5628
4561 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5629
4562 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5630
4563 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5631
4564 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5642
4565 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5649
4566 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5650
4567 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5651
4568 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5652
4569 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5653
4570 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5654
4571 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5655
4572 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5656
4573 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5657
4574 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5658
4575 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5659
4576 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5660
4577 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5661
4578 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5662
4579 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5663
4580 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5664
4581 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5665
4582 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5666
4583 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5667
4584 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5668
4585 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5669
4586 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5670
4587 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5671
4588 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5672
4589 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5673
4590 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5674
4591 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5675
4592 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5676
4593 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5677
4594 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5678
4595 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5679
4596 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5680
4597 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5681
4598 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5682
4599 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5683
4600 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5684
4601 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5685
4602 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5686
4603 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5687
4604 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5688
4605 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5689
4606 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5690
4607 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5691
4608 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5692
4609 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5693
4610 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5694
4611 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5695
4612 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5696
4613 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5697
4614 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5698
4615 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5699
4616 svn-v4:9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:trunk:5700


Added: trunk/gforge_base/evolvisforge/plugins.test/helloworld2/INSTALL
===================================================================
--- trunk/gforge_base/evolvisforge/plugins.test/helloworld2/INSTALL	                        (rev 0)
+++ trunk/gforge_base/evolvisforge/plugins.test/helloworld2/INSTALL	2010-02-26 00:19:01 UTC (rev 4850)
@@ -0,0 +1,17 @@
+0. INSTALLATION of Helloworld Plugin
+
+i.e. : if the directory where the plugins are is  /srv/www/gforge/plugins you should end up 
+	with /srv/www/gforge/plugins/helloworld and all the files in it
+
+1. CONFIGURATION
+
+A) Make the symbolic links for each section
+
+(this is just an example, you should change the variables for what you have on your installation)
+
+/$GFORGEDIR/www/plugins/helloworld -> /$GFORGEPLUGINSDIR/helloworld/www
+/$ETC/gforge ->  /$GFORGEPLUGINSDIR/helloworld/etc/plugins/helloworld
+
+B) Run the db/helloworld-init.sql file
+
+psql -U gforge gforge < db/helloworld-init.sql
\ No newline at end of file

Added: trunk/gforge_base/evolvisforge/plugins.test/helloworld2/bin/sayhello
===================================================================
--- trunk/gforge_base/evolvisforge/plugins.test/helloworld2/bin/sayhello	                        (rev 0)
+++ trunk/gforge_base/evolvisforge/plugins.test/helloworld2/bin/sayhello	2010-02-26 00:19:01 UTC (rev 4850)
@@ -0,0 +1,9 @@
+#! /usr/bin/perl -w
+
+my $world ;
+
+do "/etc/gforge/plugins/helloworld/world.conf"
+    or die "Cannot read /etc/gforge/plugins/helloworld/world.conf" ;
+
+print STDOUT "Hello $world on STDOUT!\n" ;
+print STDERR "Hello $world on STDERR!\n" ;

Added: trunk/gforge_base/evolvisforge/plugins.test/helloworld2/common/HelloWorldPlugin.class
===================================================================
--- trunk/gforge_base/evolvisforge/plugins.test/helloworld2/common/HelloWorldPlugin.class	                        (rev 0)
+++ trunk/gforge_base/evolvisforge/plugins.test/helloworld2/common/HelloWorldPlugin.class	2010-02-26 00:19:01 UTC (rev 4850)
@@ -0,0 +1,157 @@
+<?php
+
+/**
+ * HelloWorldPlugin Class
+ *
+ *
+ * This file is part of GForge.
+ *
+ * GForge 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.
+ *
+ * GForge is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with GForge; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+ */
+
+class HelloWorldPlugin extends Plugin {
+	function HelloWorldPlugin () {
+		$this->Plugin() ;
+		$this->name = "helloworld" ;
+		$this->text = "Hello World!" ; // To show in the tabs, use...
+		$this->hooks[] = "user_personal_links";//to make a link to the user´s personal part of the plugin
+		$this->hooks[] = "usermenu" ;
+		$this->hooks[] = "groupmenu" ;	// To put into the project tabs
+		$this->hooks[] = "groupisactivecheckbox" ; // The "use ..." checkbox in editgroupinfo
+		$this->hooks[] = "groupisactivecheckboxpost" ; //
+		$this->hooks[] = "userisactivecheckbox" ; // The "use ..." checkbox in user account
+		$this->hooks[] = "userisactivecheckboxpost" ; //
+		$this->hooks[] = "project_admin_plugins"; // to show up in the admin page fro group
+	}
+
+	function CallHook ($hookname, $params) {
+		global $use_helloworldplugin,$G_SESSION,$HTML;
+		$group_id=$params['group'];
+		if ($hookname == "usermenu") {
+			$text = $this->text; // this is what shows in the tab
+			if ($G_SESSION->usesPlugin("helloworld")) {
+				$param = '?type=user&id=' . $G_SESSION->getId() . "&pluginname=" . $this->name; // we indicate the part we´re calling is the user one
+				echo ' | ' . $HTML->PrintSubMenu (array ($text),
+						  array ('/plugins/helloworld/index.php' . $param ));				
+			}
+		} elseif ($hookname == "groupmenu") {
+			$project = &group_get_object($group_id);
+			if (!$project || !is_object($project)) {
+				return;
+			}
+			if ($project->isError()) {
+				return;
+			}
+			if (!$project->isProject()) {
+				return;
+			}
+			if ( $project->usesPlugin ( $this->name ) ) {
+				$params['TITLES'][]=$this->text;
+				$params['DIRS'][]='/plugins/helloworld/index.php?type=group&id=' . $group_id . "&pluginname=" . $this->name; // we indicate the part we´re calling is the project one
+			} else {
+				$params['TITLES'][]=$this->text." is [Off]";
+			}	
+			(($params['toptab'] == $this->name) ? $params['selected']=(count($params['TITLES'])-1) : '' );
+		} elseif ($hookname == "groupisactivecheckbox") {
+			//Check if the group is active
+			// this code creates the checkbox in the project edit public info page to activate/deactivate the plugin
+			$group = &group_get_object($group_id);
+			echo "<tr>";
+			echo "<td>";
+			echo ' <input type="CHECKBOX" name="use_helloworldplugin" value="1" ';
+			// CHECKED OR UNCHECKED?
+			if ( $group->usesPlugin ( $this->name ) ) {
+				echo "CHECKED";
+			}
+			echo "><br/>";
+			echo "</td>";
+			echo "<td>";
+			echo "<strong>Use ".$this->text." Plugin</strong>";
+			echo "</td>";
+			echo "</tr>";
+		} elseif ($hookname == "groupisactivecheckboxpost") {
+			// this code actually activates/deactivates the plugin after the form was submitted in the project edit public info page
+			$group = &group_get_object($group_id);
+			$use_hellowordplugin = getStringFromRequest('use_helloworldplugin');
+			if ( $use_helloworldplugin == 1 ) {
+				$group->setPluginUse ( $this->name );
+			} else {
+				$group->setPluginUse ( $this->name, false );
+			}
+		} elseif ($hookname == "userisactivecheckbox") {
+			//check if user is active
+			// this code creates the checkbox in the user account manteinance page to activate/deactivate the plugin
+			$user = $params['user'];
+			echo "<tr>";
+			echo "<td>";
+			echo ' <input type="CHECKBOX" name="use_helloworldplugin" value="1" ';
+			// CHECKED OR UNCHECKED?
+			if ( $user->usesPlugin ( $this->name ) ) {
+				echo "CHECKED";
+ 			}
+			echo ">    Use ".$this->text." Plugin";
+			echo "</td>";
+			echo "</tr>";
+		} elseif ($hookname == "userisactivecheckboxpost") {
+			// this code actually activates/deactivates the plugin after the form was submitted in the user account manteinance page
+			$user = $params['user'];
+			$use_hellowordplugin = getStringFromRequest('use_helloworldplugin');
+			if ( $use_hellowordplugin == 1 ) {
+				$user->setPluginUse ( $this->name );
+			} else {
+				$user->setPluginUse ( $this->name, false );
+			}
+			echo "<tr>";
+			echo "<td>";
+			echo ' <input type="CHECKBOX" name="use_hellowordplugin" value="1" ';
+			// CHECKED OR UNCHECKED?
+			if ( $user->usesPlugin ( $this->name ) ) {
+				echo "CHECKED";
+			}
+			echo ">    Use ".$this->text." Plugin";
+			echo "</td>";
+			echo "</tr>";
+		} elseif ($hookname == "user_personal_links") {
+			global $Language;
+			// this displays the link in the user´s profile page to it´s personal HelloWorld (if you want other sto access it, youll have to change the permissions in the index.php
+			$userid = $params['user_id'];
+			$user = user_get_object($userid);
+			$text = $params['text'];
+			//check if the user has the plugin activated
+			if ($user->usesPlugin($this->name)) {
+				echo '	<p>
+					<a href="/plugins/helloworld/index.php?id=' . $userid . '&type=user&pluginname=' . $this->name . '">' . $Language->getText('user_home','view_helloworld') .'</a></p>';
+			}
+		} elseif ($hookname == "project_admin_plugins") {
+			global $Language;
+			// this displays the link in the project admin options page to it´s  HelloWorld administration
+			$group_id = $params['group_id'];
+			$group = &group_get_object($group_id);
+			if ( $group->usesPlugin ( $this->name ) ) {
+				echo '<a href="/plugins/helloworld/index.php?id=' . $group->getID() . '&type=admin&pluginname=' . $this->name . '">' . $Language->getText('project_admin','helloworld') . '</a><br />';
+			}
+		}												    
+		elseif ($hookname == "blahblahblah") {
+			// ...
+		} 
+	}
+}
+
+// Local Variables:
+// mode: php
+// c-file-style: "bsd"
+// End:
+
+?>

Added: trunk/gforge_base/evolvisforge/plugins.test/helloworld2/common/helloworld-init.php
===================================================================
--- trunk/gforge_base/evolvisforge/plugins.test/helloworld2/common/helloworld-init.php	                        (rev 0)
+++ trunk/gforge_base/evolvisforge/plugins.test/helloworld2/common/helloworld-init.php	2010-02-26 00:19:01 UTC (rev 4850)
@@ -0,0 +1,33 @@
+<?php
+
+/**
+ *
+ * This file is part of GForge.
+ *
+ * GForge 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.
+ *
+ * GForge is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with GForge; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+ */
+
+require_once ('HelloWorldPlugin.class') ;
+
+$HelloWorldPluginObject = new HelloWorldPlugin ;
+
+register_plugin ($HelloWorldPluginObject) ;
+
+// Local Variables:
+// mode: php
+// c-file-style: "bsd"
+// End:
+
+?>

Added: trunk/gforge_base/evolvisforge/plugins.test/helloworld2/common/languages/Base.tab
===================================================================
--- trunk/gforge_base/evolvisforge/plugins.test/helloworld2/common/languages/Base.tab	                        (rev 0)
+++ trunk/gforge_base/evolvisforge/plugins.test/helloworld2/common/languages/Base.tab	2010-02-26 00:19:01 UTC (rev 4850)
@@ -0,0 +1,14 @@
+#/**
+#  *
+#  * HelloWorld message catalog (English)
+#  *
+#  * GForge: Breaking Down the Barriers to Open Source Development
+#  * Copyright 1999-2001 (c) VA Linux Systems
+#  *                2005 (c) Daniel Pérez <danielperez.arg at gmail.com>
+#  * http://sourceforge.net
+#  * Here you can add your own language customizations
+#  *
+#  *
+#  */
+user_home	view_helloworld	View Personal HelloWorld
+project_admin	helloworld	View the HelloWorld Administration

Added: trunk/gforge_base/evolvisforge/plugins.test/helloworld2/db/helloworld-init.sql
===================================================================
--- trunk/gforge_base/evolvisforge/plugins.test/helloworld2/db/helloworld-init.sql	                        (rev 0)
+++ trunk/gforge_base/evolvisforge/plugins.test/helloworld2/db/helloworld-init.sql	2010-02-26 00:19:01 UTC (rev 4850)
@@ -0,0 +1,6 @@
+CREATE TABLE plugin_helloworld_sample_data (
+	domain text,
+	ip_address text
+) ;
+
+INSERT INTO plugins (plugin_name,plugin_desc) VALUES ('helloworld','HelloWorld GForge Plugin');
\ No newline at end of file

Added: trunk/gforge_base/evolvisforge/plugins.test/helloworld2/etc/plugins/helloworld/config.php
===================================================================
--- trunk/gforge_base/evolvisforge/plugins.test/helloworld2/etc/plugins/helloworld/config.php	                        (rev 0)
+++ trunk/gforge_base/evolvisforge/plugins.test/helloworld2/etc/plugins/helloworld/config.php	2010-02-26 00:19:01 UTC (rev 4850)
@@ -0,0 +1,7 @@
+<?php 
+
+// here you can put all your configuration variables
+
+$world = 'Earth';
+
+?>

Added: trunk/gforge_base/evolvisforge/plugins.test/helloworld2/httpd.conf
===================================================================
--- trunk/gforge_base/evolvisforge/plugins.test/helloworld2/httpd.conf	                        (rev 0)
+++ trunk/gforge_base/evolvisforge/plugins.test/helloworld2/httpd.conf	2010-02-26 00:19:01 UTC (rev 4850)
@@ -0,0 +1,4 @@
+<Location /plugins/helloworld/>
+  SetEnv PLUGINNAME helloworld
+  SetEnv PLUGINVERSION 0.1-1
+</Location>

Added: trunk/gforge_base/evolvisforge/plugins.test/helloworld2/www/index.php
===================================================================
--- trunk/gforge_base/evolvisforge/plugins.test/helloworld2/www/index.php	                        (rev 0)
+++ trunk/gforge_base/evolvisforge/plugins.test/helloworld2/www/index.php	2010-02-26 00:19:01 UTC (rev 4850)
@@ -0,0 +1,107 @@
+<?php
+
+/*
+ * Hello world plugin 2
+ *
+ * Daniel Perez <danielperez.arg at gmail.com>
+ *
+ * This is an example to watch things in action. You can obviously modify things and logic as you see fit
+ */
+
+require_once('pre.php');
+require_once ('plugins/helloworld/config.php');
+
+// the header that displays for the user portion of the plugin
+function helloworld_Project_Header($params) {                                                                                                                                         
+	global $DOCUMENT_ROOT,$HTML,$id,$Language;                                                                            
+	$params['toptab']='HelloWorld'; 
+	$params['group']=$id;
+	/*                                                                                                                                                              
+		Show horizontal links                                                                                                                                   
+	*/                                                                                                                                                              
+	site_project_header($params);														
+}
+
+// the header that displays for the project portion of the plugin
+function helloworld_User_Header($params) {
+	global $DOCUMENT_ROOT,$HTML,$user_id,$Language;                                                                            
+	$params['toptab']='HelloWorld'; 
+	$params['user']=$user_id;
+	/*                                                                                                                                                              
+	 Show horizontal links                                                                                                                                   
+	 */                                                                                                                                                              
+	site_user_header($params);    
+}
+
+
+	$user = session_get_user(); // get the session user
+
+	if (!$user || !is_object($user) || $user->isError() || !$user->isActive()) {
+		exit_error("Invalid User", "Cannot Process your request for this user.");
+	}
+
+	$type = getStringFromRequest('type');
+	$id = getStringFromRequest('id');
+	$pluginname = getStringFromRequest('pluginname');
+	
+	if (!$type) {
+		exit_error("Cannot Process your request","No TYPE specified"); // you can create items in Base.tab and customize this messages
+	} elseif (!$id) {
+		exit_error("Cannot Process your request","No ID specified");
+	} else {
+		if ($type == 'group') {
+			$group = group_get_object($id);
+			if ( !$group) {
+				exit_error("Invalid Project", "Inexistent Project");
+			}
+			if ( ! ($group->usesPlugin ( $pluginname )) ) {//check if the group has the HelloWorld plugin active
+				exit_error("Error", "First activate the $pluginname plugin through the Project's Admin Interface");			
+			}
+			$userperm = $group->getPermission($user);//we´ll check if the user belongs to the group (optional)
+			if ( !$userperm->IsMember()) {
+				exit_error("Access Denied", "You are not a member of this project");
+			}
+			// other perms checks here...
+			helloworld_Project_Header(array('title'=>$pluginname . ' Project Plugin!','pagename'=>"$pluginname",'sectionvals'=>array(group_getname($id))));    
+			// DO THE STUFF FOR THE PROJECT PART HERE
+			echo "We are in the Project Helloworld plugin <br>";
+			echo "Greetings from planet " . $world; // $world comes from the config file in /etc
+		} elseif ($type == 'user') {
+			$realuser = user_get_object($id);// 
+			if (!($realuser) || !($realuser->usesPlugin($pluginname))) {
+				exit_error("Error", "First activate the User's $pluginname plugin through Account Manteinance Page");
+			}
+			if ( (!$user) || ($user->getID() != $id)) { // if someone else tried to access the private HelloWorld part of this user
+				exit_error("Access Denied", "You cannot access other user's personal $pluginname");
+			}
+			helloworld_User_Header(array('title'=>'My '.$pluginname,'pagename'=>"$pluginname",'sectionvals'=>array($realuser->getUnixName())));    
+			// DO THE STUFF FOR THE USER PART HERE
+			echo "We are in the User Helloworld plugin <br>";
+			echo "Greetings from planet " . $world; // $world comes from the config file in /etc
+		} elseif ($type == 'admin') {
+			$group = group_get_object($id);
+			if ( !$group) {
+				exit_error("Invalid Project", "Inexistent Project");
+			}
+			if ( ! ($group->usesPlugin ( $pluginname )) ) {//check if the group has the HelloWorld plugin active
+				exit_error("Error", "First activate the $pluginname plugin through the Project's Admin Interface");			
+			}
+			$userperm = $group->getPermission($user);//we´ll check if the user belongs to the group
+			if ( !$userperm->IsMember()) {
+				exit_error("Access Denied", "You are not a member of this project");
+			}
+			//only project admin can access here
+			if ( $userperm->isAdmin() ) {
+				helloworld_Project_Header(array('title'=>$pluginname . ' Project Plugin!','pagename'=>"$pluginname",'sectionvals'=>array(group_getname($id))));    
+				// DO THE STUFF FOR THE PROJECT ADMINISTRATION PART HERE
+				echo "We are in the Project Helloworld plugin <font color=\"#ff0000\">ADMINISTRATION</font> <br>";
+				echo "Greetings from planet " . $world; // $world comes from the config file in /etc
+			} else {
+				exit_error("Access Denied", "You are not a project Admin");
+			}
+		}
+	}	 
+	
+	site_project_footer(array());
+
+?>

Added: trunk/gforge_base/evolvisforge/plugins.test/ldapextauth/README
===================================================================
--- trunk/gforge_base/evolvisforge/plugins.test/ldapextauth/README	                        (rev 0)
+++ trunk/gforge_base/evolvisforge/plugins.test/ldapextauth/README	2010-02-26 00:19:01 UTC (rev 4850)
@@ -0,0 +1,32 @@
+gforge-plugin-ldapextauth
+-------------------------
+
+This is the external LDAP authentication plugin for Gforge.
+
+Prerequisite:
+
+- install Perl, DBI and DBD::Pg as per Gforge's INSTALL file
+
+Installation:
+
+- files from etc/ go to /etc/gforge/plugins/ldapextauth
+- files from bin/ go to /usr/lib/gforge/plugins/ldapextauth/bin
+- files from include/ go to /usr/lib/gforge/plugins/ldapextauth/include
+
+Setup:
+
+- customise files in /etc/gforge/plugins/ldapextauth to match your
+LDAP installation (server, base DN, and mapping)
+- /usr/lib/gforge/plugins/ldapextauth/bin/db-upgrade.pl
+- /usr/lib/gforge/bin/register-plugin ldapextauth "LDAP external authentication"
+
+Voilà, you can now log into Gforge with your existing loginname and
+password.  Your account will be created the first time you log in
+(which means you can't add someone to a group before his/her first
+login).
+
+ -- Roland Mas <lolando at debian.org>, Tue May 18 22:14:54 2004
+
+Local Variables:
+mode: readme-debian
+End:

Added: trunk/gforge_base/evolvisforge/plugins.test/ldapextauth/bin/db-delete.pl
===================================================================
--- trunk/gforge_base/evolvisforge/plugins.test/ldapextauth/bin/db-delete.pl	                        (rev 0)
+++ trunk/gforge_base/evolvisforge/plugins.test/ldapextauth/bin/db-delete.pl	2010-02-26 00:19:01 UTC (rev 4850)
@@ -0,0 +1,189 @@
+#!/usr/bin/perl -w
+#
+# $Id$
+#
+# Debian-specific script to delete plugin-specific tables
+# Roland Mas <lolando at debian.org>
+
+use strict ;
+use diagnostics ;
+
+use DBI ;
+use MIME::Base64 ;
+use HTML::Entities ;
+
+use vars qw/$dbh @reqlist $query/ ;
+use vars qw/$sys_default_domain $sys_cvs_host $sys_download_host
+    $sys_shell_host $sys_users_host $sys_docs_host $sys_lists_host
+    $sys_dns1_host $sys_dns2_host $FTPINCOMING_DIR $FTPFILES_DIR
+    $sys_urlroot $sf_cache_dir $sys_name $sys_themeroot
+    $sys_news_group $sys_dbhost $sys_dbname $sys_dbuser $sys_dbpasswd
+    $sys_ldap_base_dn $sys_ldap_host $admin_login $admin_password
+    $server_admin $domain_name $newsadmin_groupid $statsadmin_groupid
+    $skill_list/ ;
+use vars qw/$pluginname/ ;
+
+sub is_lesser ( $$ ) ;
+sub is_greater ( $$ ) ;
+sub debug ( $ ) ;
+sub parse_sql_file ( $ ) ;
+
+require ("/usr/lib/gforge/lib/include.pl") ; # Include a few predefined functions 
+require ("/usr/lib/gforge/lib/sqlparser.pm") ; # Our magic SQL parser
+
+debug "You'll see some debugging info during this installation." ;
+debug "Do not worry unless told otherwise." ;
+
+&db_connect ;
+
+# debug "Connected to the database OK." ;
+
+$pluginname = "ldapextauth" ;
+
+$dbh->{AutoCommit} = 0;
+$dbh->{RaiseError} = 1;
+eval {
+    my ($sth, @array, $version, $action, $path, $target, $rname) ;
+
+    my $pattern = "plugin_" . $pluginname . '_%' ;
+
+    $query = "SELECT relname FROM pg_class WHERE relname LIKE '$pattern' AND relkind='v'" ;
+    $sth = $dbh->prepare ($query) ;
+    $sth->execute () ;
+    while (@array = $sth->fetchrow_array ()) {
+	$rname = $array [0] ;
+	&drop_view_if_exists ($rname) ;
+    }
+    $sth->finish () ;
+
+    $query = "SELECT relname FROM pg_class WHERE relname LIKE '$pattern' AND relkind='r'" ;
+    $sth = $dbh->prepare ($query) ;
+    $sth->execute () ;
+    while (@array = $sth->fetchrow_array ()) {
+	$rname = $array [0] ;
+	&drop_table_if_exists ($rname) ;
+    }
+    $sth->finish () ;
+
+    $query = "SELECT relname FROM pg_class WHERE relname LIKE '$pattern' AND relkind='i'" ;
+    $sth = $dbh->prepare ($query) ;
+    $sth->execute () ;
+    while (@array = $sth->fetchrow_array ()) {
+	$rname = $array [0] ;
+	&drop_index_if_exists ($rname) ;
+    }
+    $sth->finish () ;
+
+    $query = "SELECT relname FROM pg_class WHERE relname LIKE '$pattern' AND relkind='s'" ;
+    $sth = $dbh->prepare ($query) ;
+    $sth->execute () ;
+    while (@array = $sth->fetchrow_array ()) {
+	$rname = $array [0] ;
+	&drop_sequence_if_exists ($rname) ;
+    }
+    $sth->finish () ;
+
+    $dbh->commit ();
+
+
+    debug "It seems your database deletion went well and smoothly.  That's cool." ;
+    debug "Please enjoy using Debian GForge." ;
+
+    # There should be a commit at the end of every block above.
+    # If there is not, then it might be symptomatic of a problem.
+    # For safety, we roll back.
+    $dbh->rollback ();
+};
+
+if ($@) {
+    warn "Transaction aborted because $@" ;
+    debug "Transaction aborted because $@" ;
+    debug "Last SQL query was:\n$query\n(end of query)" ;
+    $dbh->rollback ;
+    debug "Please report this bug on the Debian bug-tracking system." ;
+    debug "Please include the previous messages as well to help debugging." ;
+    debug "You should not worry too much about this," ;
+    debug "your DB is still in a consistent state and should be usable." ;
+    exit 1 ;
+}
+
+$dbh->rollback ;
+$dbh->disconnect ;
+
+sub debug ( $ ) {
+    my $v = shift ;
+    chomp $v ;
+    print STDERR "$v\n" ;
+}
+
+sub drop_table_if_exists ( $ ) {
+    my $tname = shift or die  "Not enough arguments" ;
+    $query = "SELECT count(*) FROM pg_class WHERE relname='$tname' AND relkind='r'" ;
+    my $sth = $dbh->prepare ($query) ;
+    $sth->execute () ;
+    my @array = $sth->fetchrow_array () ;
+    $sth->finish () ;
+
+    if ($array [0] != 0) {
+	# debug "Dropping table $tname" ;
+	$query = "DROP TABLE $tname" ;
+	# debug $query ;
+	$sth = $dbh->prepare ($query) ;
+	$sth->execute () ;
+	$sth->finish () ;
+    }
+}
+
+sub drop_sequence_if_exists ( $ ) {
+    my $sname = shift or die  "Not enough arguments" ;
+    $query = "SELECT count(*) FROM pg_class WHERE relname='$sname' AND relkind='S'" ;
+    my $sth = $dbh->prepare ($query) ;
+    $sth->execute () ;
+    my @array = $sth->fetchrow_array () ;
+    $sth->finish () ;
+
+    if ($array [0] != 0) {
+	# debug "Dropping sequence $sname" ;
+	$query = "DROP SEQUENCE $sname" ;
+	# debug $query ;
+	$sth = $dbh->prepare ($query) ;
+	$sth->execute () ;
+	$sth->finish () ;
+    }
+}
+
+sub drop_index_if_exists ( $ ) {
+    my $iname = shift or die  "Not enough arguments" ;
+    $query = "SELECT count(*) FROM pg_class WHERE relname='$iname' AND relkind='i'" ;
+    my $sth = $dbh->prepare ($query) ;
+    $sth->execute () ;
+    my @array = $sth->fetchrow_array () ;
+    $sth->finish () ;
+
+    if ($array [0] != 0) {
+	# debug "Dropping index $iname" ;
+	$query = "DROP INDEX $iname" ;
+	# debug $query ;
+	$sth = $dbh->prepare ($query) ;
+	$sth->execute () ;
+	$sth->finish () ;
+    }
+}
+
+sub drop_view_if_exists ( $ ) {
+    my $iname = shift or die  "Not enough arguments" ;
+    $query = "SELECT count(*) FROM pg_class WHERE relname='$iname' AND relkind='v'" ;
+    my $sth = $dbh->prepare ($query) ;
+    $sth->execute () ;
+    my @array = $sth->fetchrow_array () ;
+    $sth->finish () ;
+
+    if ($array [0] != 0) {
+	# debug "Dropping view $iname" ;
+	$query = "DROP VIEW $iname" ;
+	# debug $query ;
+	$sth = $dbh->prepare ($query) ;
+	$sth->execute () ;
+	$sth->finish () ;
+    }
+}


Property changes on: trunk/gforge_base/evolvisforge/plugins.test/ldapextauth/bin/db-delete.pl
___________________________________________________________________
Added: svn:executable
   + *

Added: trunk/gforge_base/evolvisforge/plugins.test/ldapextauth/bin/db-upgrade.pl
===================================================================
--- trunk/gforge_base/evolvisforge/plugins.test/ldapextauth/bin/db-upgrade.pl	                        (rev 0)
+++ trunk/gforge_base/evolvisforge/plugins.test/ldapextauth/bin/db-upgrade.pl	2010-02-26 00:19:01 UTC (rev 4850)
@@ -0,0 +1,280 @@
+#!/usr/bin/perl -w
+#
+# $Id$
+#
+# Debian-specific script to upgrade the database between releases
+# Roland Mas <lolando at debian.org>
+
+use strict ;
+use diagnostics ;
+
+use DBI ;
+use MIME::Base64 ;
+use HTML::Entities ;
+
+use vars qw/$dbh @reqlist $query/ ;
+use vars qw/$sys_default_domain $sys_cvs_host $sys_download_host
+    $sys_shell_host $sys_users_host $sys_docs_host $sys_lists_host
+    $sys_dns1_host $sys_dns2_host $FTPINCOMING_DIR $FTPFILES_DIR
+    $sys_urlroot $sf_cache_dir $sys_name $sys_themeroot
+    $sys_news_group $sys_dbhost $sys_dbname $sys_dbuser $sys_dbpasswd
+    $sys_ldap_base_dn $sys_ldap_host $admin_login $admin_password
+    $server_admin $domain_name $newsadmin_groupid $statsadmin_groupid
+    $skill_list/ ;
+use vars qw/$pluginname/ ;
+
+sub is_lesser ( $$ ) ;
+sub is_greater ( $$ ) ;
+sub debug ( $ ) ;
+sub parse_sql_file ( $ ) ;
+
+require ("/usr/lib/gforge/lib/include.pl") ; # Include a few predefined functions 
+require ("/usr/lib/gforge/lib/sqlparser.pm") ; # Our magic SQL parser
+
+debug "You'll see some debugging info during this installation." ;
+debug "Do not worry unless told otherwise." ;
+
+&db_connect ;
+
+# debug "Connected to the database OK." ;
+
+$pluginname = "ldapextauth" ;
+
+$dbh->{AutoCommit} = 0;
+$dbh->{RaiseError} = 1;
+eval {
+    my ($sth, @array, $version, $path, $target) ;
+
+    &create_metadata_table ("0") ;
+
+    $dbh->commit () ;
+    
+    $version = &get_db_version ;
+    $target = "1.0" ;
+    if (is_lesser $version, $target) {
+	my @filelist = (
+			# "/usr/lib/gforge/plugins/$pluginname/lib/$pluginname-init.sql",
+			) ;
+	
+	foreach my $file (@filelist) {
+	    debug "Processing $file" ;
+	    @reqlist = @{ &parse_sql_file ($file) } ;
+	    
+	    foreach my $s (@reqlist) {
+		$query = $s ;
+		# debug $query ;
+		$sth = $dbh->prepare ($query) ;
+		$sth->execute () ;
+		$sth->finish () ;
+	    }
+	}
+	@reqlist = () ;
+	
+	&update_db_version ($target) ;
+	debug "Committing." ;
+	$dbh->commit () ;
+    }
+    
+    debug "It seems your database install/upgrade went well and smoothly.  That's cool." ;
+    debug "Please enjoy using Debian GForge." ;
+
+    # There should be a commit at the end of every block above.
+    # If there is not, then it might be symptomatic of a problem.
+    # For safety, we roll back.
+    $dbh->rollback ();
+};
+
+if ($@) {
+    warn "Transaction aborted because $@" ;
+    debug "Transaction aborted because $@" ;
+    debug "Last SQL query was:\n$query\n(end of query)" ;
+    $dbh->rollback ;
+    debug "Please report this bug on the Debian bug-tracking system." ;
+    debug "Please include the previous messages as well to help debugging." ;
+    debug "You should not worry too much about this," ;
+    debug "your DB is still in a consistent state and should be usable." ;
+    exit 1 ;
+}
+
+$dbh->rollback ;
+$dbh->disconnect ;
+
+sub is_lesser ( $$ ) {
+    my $v1 = shift || 0 ;
+    my $v2 = shift || 0 ;
+
+    my $rc = system "dpkg --compare-versions $v1 lt $v2" ;
+
+    return (! $rc) ;
+}
+
+sub is_greater ( $$ ) {
+    my $v1 = shift || 0 ;
+    my $v2 = shift || 0 ;
+
+    my $rc = system "dpkg --compare-versions $v1 gt $v2" ;
+
+    return (! $rc) ;
+}
+
+sub debug ( $ ) {
+    my $v = shift ;
+    chomp $v ;
+    print STDERR "$v\n" ;
+}
+
+sub create_metadata_table ( $ ) {
+    my $v = shift || "0" ;
+    my $tablename = "plugin_" .$pluginname . "_meta_data" ;
+    # Do we have the metadata table?
+
+    $query = "SELECT count(*) FROM pg_class WHERE relname = '$tablename' and relkind = 'r'";
+    # debug $query ;
+    my $sth = $dbh->prepare ($query) ;
+    $sth->execute () ;
+    my @array = $sth->fetchrow_array () ;
+    $sth->finish () ;
+
+    # Let's create this table if we have it not
+
+    if ($array [0] == 0) {
+	debug "Creating $tablename table." ;
+	$query = "CREATE TABLE $tablename (key varchar primary key, value text not null)" ;
+	# debug $query ;
+	$sth = $dbh->prepare ($query) ;
+	$sth->execute () ;
+	$sth->finish () ;
+    }
+
+    $query = "SELECT count(*) FROM $tablename WHERE key = 'db-version'";
+    # debug $query ;
+    $sth = $dbh->prepare ($query) ;
+    $sth->execute () ;
+    @array = $sth->fetchrow_array () ;
+    $sth->finish () ;
+
+    # Empty table?  We'll have to fill it up a bit
+
+    if ($array [0] == 0) {
+	debug "Inserting first data into $tablename table." ;
+	$query = "INSERT INTO $tablename (key, value) VALUES ('db-version', '$v')" ;
+	# debug $query ;
+	$sth = $dbh->prepare ($query) ;
+	$sth->execute () ;
+	$sth->finish () ;
+    }
+}
+
+sub update_db_version ( $ ) {
+    my $v = shift or die "Not enough arguments" ;
+    my $tablename = "plugin_" .$pluginname . "_meta_data" ;
+
+    debug "Updating $tablename table." ;
+    $query = "UPDATE $tablename SET value = '$v' WHERE key = 'db-version'" ;
+    # debug $query ;
+    my $sth = $dbh->prepare ($query) ;
+    $sth->execute () ;
+    $sth->finish () ;
+}
+
+sub get_db_version () {
+    my $tablename = "plugin_" .$pluginname . "_meta_data" ;
+
+    $query = "SELECT value FROM $tablename WHERE key = 'db-version'" ;
+    # debug $query ;
+    my $sth = $dbh->prepare ($query) ;
+    $sth->execute () ;
+    my @array = $sth->fetchrow_array () ;
+    $sth->finish () ;
+
+    my $version = $array [0] ;
+
+    return $version ;
+}
+
+sub drop_table_if_exists ( $ ) {
+    my $tname = shift or die  "Not enough arguments" ;
+    $query = "SELECT count(*) FROM pg_class WHERE relname='$tname' AND relkind='r'" ;
+    my $sth = $dbh->prepare ($query) ;
+    $sth->execute () ;
+    my @array = $sth->fetchrow_array () ;
+    $sth->finish () ;
+
+    if ($array [0] != 0) {
+	# debug "Dropping table $tname" ;
+	$query = "DROP TABLE $tname" ;
+	# debug $query ;
+	$sth = $dbh->prepare ($query) ;
+	$sth->execute () ;
+	$sth->finish () ;
+    }
+}
+
+sub drop_sequence_if_exists ( $ ) {
+    my $sname = shift or die  "Not enough arguments" ;
+    $query = "SELECT count(*) FROM pg_class WHERE relname='$sname' AND relkind='S'" ;
+    my $sth = $dbh->prepare ($query) ;
+    $sth->execute () ;
+    my @array = $sth->fetchrow_array () ;
+    $sth->finish () ;
+
+    if ($array [0] != 0) {
+	# debug "Dropping sequence $sname" ;
+	$query = "DROP SEQUENCE $sname" ;
+	# debug $query ;
+	$sth = $dbh->prepare ($query) ;
+	$sth->execute () ;
+	$sth->finish () ;
+    }
+}
+
+sub drop_index_if_exists ( $ ) {
+    my $iname = shift or die  "Not enough arguments" ;
+    $query = "SELECT count(*) FROM pg_class WHERE relname='$iname' AND relkind='i'" ;
+    my $sth = $dbh->prepare ($query) ;
+    $sth->execute () ;
+    my @array = $sth->fetchrow_array () ;
+    $sth->finish () ;
+
+    if ($array [0] != 0) {
+	# debug "Dropping index $iname" ;
+	$query = "DROP INDEX $iname" ;
+	# debug $query ;
+	$sth = $dbh->prepare ($query) ;
+	$sth->execute () ;
+	$sth->finish () ;
+    }
+}
+
+sub drop_view_if_exists ( $ ) {
+    my $iname = shift or die  "Not enough arguments" ;
+    $query = "SELECT count(*) FROM pg_class WHERE relname='$iname' AND relkind='v'" ;
+    my $sth = $dbh->prepare ($query) ;
+    $sth->execute () ;
+    my @array = $sth->fetchrow_array () ;
+    $sth->finish () ;
+
+    if ($array [0] != 0) {
+	# debug "Dropping view $iname" ;
+	$query = "DROP VIEW $iname" ;
+	# debug $query ;
+	$sth = $dbh->prepare ($query) ;
+	$sth->execute () ;
+	$sth->finish () ;
+    }
+}
+
+sub bump_sequence_to ( $$ ) {
+    my ($sth, @array, $seqname, $targetvalue) ;
+
+    $seqname = shift ;
+    $targetvalue = shift ;
+
+    do {
+	$query = "select nextval ('$seqname')" ;
+	$sth = $dbh->prepare ($query) ;
+	$sth->execute () ;
+	@array = $sth->fetchrow_array () ;
+	$sth->finish () ;
+    } until $array[0] >= $targetvalue ;
+}


Property changes on: trunk/gforge_base/evolvisforge/plugins.test/ldapextauth/bin/db-upgrade.pl
___________________________________________________________________
Added: svn:executable
   + *

Added: trunk/gforge_base/evolvisforge/plugins.test/ldapextauth/db/install_ldapextauth.sql
===================================================================
--- trunk/gforge_base/evolvisforge/plugins.test/ldapextauth/db/install_ldapextauth.sql	                        (rev 0)
+++ trunk/gforge_base/evolvisforge/plugins.test/ldapextauth/db/install_ldapextauth.sql	2010-02-26 00:19:01 UTC (rev 4850)
@@ -0,0 +1 @@
+INSERT INTO plugins (plugin_name,plugin_desc) VALUES ('ldapextauth','LDAP Auth. Plugin');

Added: trunk/gforge_base/evolvisforge/plugins.test/ldapextauth/debian/README.Debian
===================================================================
--- trunk/gforge_base/evolvisforge/plugins.test/ldapextauth/debian/README.Debian	                        (rev 0)
+++ trunk/gforge_base/evolvisforge/plugins.test/ldapextauth/debian/README.Debian	2010-02-26 00:19:01 UTC (rev 4850)
@@ -0,0 +1,16 @@
+gforge-plugin-ldapextauth for Debian
+------------------------------------
+
+This plugin allows Gforge to authenticate users against an external
+LDAP directory.  In order to get it to be useful, you'll have to edit
+two configuration files:
+
+- /etc/gforge/plugins/ldapextauth/config.php holds the information
+needed to access the LDAP server against which to authenticate, as
+well as how to generate the DN to try;
+
+- /etc/gforge/plugins/ldapextauth/mapping.php contains a function
+mapping LDAP attributes into the database attributes; compulsory
+fields are firstname, lastname and email, but others exist.
+
+ -- Roland Mas <lolando at debian.org>, Sun Apr 18 17:45:57 2004

Added: trunk/gforge_base/evolvisforge/plugins.test/ldapextauth/debian/changelog
===================================================================
--- trunk/gforge_base/evolvisforge/plugins.test/ldapextauth/debian/changelog	                        (rev 0)
+++ trunk/gforge_base/evolvisforge/plugins.test/ldapextauth/debian/changelog	2010-02-26 00:19:01 UTC (rev 4850)
@@ -0,0 +1,21 @@
+gforge-plugin-ldapextauth (4.0-1) unstable; urgency=low
+
+  * [Christian] Align version with gforge 
+
+ -- Christian Bayle <bayle at debian.org>  Sun, 16 Jan 2005 14:00:31 +0100
+
+gforge-plugin-ldapextauth (1.0-3) unstable; urgency=low
+
+  * Added Active Directory Support
+  * Added some exanples in config.php and mapping.php
+  * Removed ldap_bind Warning
+  * Bump to unstable
+
+ -- Christian Bayle <bayle at debian.org>  Sat, 30 Oct 2004 00:44:34 +0200
+
+gforge-plugin-ldapextauth (1.0-0) experimental; urgency=low
+
+  * First real release of an external LDAP authentication plugin.
+
+ -- Roland Mas <lolando at debian.org>  Sun, 18 Apr 2004 17:42:42 +0200
+

Added: trunk/gforge_base/evolvisforge/plugins.test/ldapextauth/debian/control
===================================================================
--- trunk/gforge_base/evolvisforge/plugins.test/ldapextauth/debian/control	                        (rev 0)
+++ trunk/gforge_base/evolvisforge/plugins.test/ldapextauth/debian/control	2010-02-26 00:19:01 UTC (rev 4850)
@@ -0,0 +1,17 @@
+Source: gforge-plugin-ldapextauth
+Section: devel
+Priority: optional
+Maintainer: Roland Mas <lolando at debian.org>
+Build-Depends-Indep: debhelper (>> 4.0.0)
+Standards-Version: 3.6.1
+
+Package: gforge-plugin-ldapextauth
+Architecture: all
+Depends: gforge-common, gforge-db-postgresql | gforge-db, gforge-web-apache | gforge-web, php4-ldap
+Description: A Gforge plugin to authenticate from an external LDAP directory
+ This plugin allows Gforge to use an external LDAP directory to
+ authenticate the users.  When they first try to log in, their
+ login-name and password are checked against the LDAP tree.  If they
+ match, the user is transparently inserted into the Gforge database
+ and authentication proceeds normally from then on.  Password changes
+ are also taken into account.

Added: trunk/gforge_base/evolvisforge/plugins.test/ldapextauth/debian/copyright
===================================================================
--- trunk/gforge_base/evolvisforge/plugins.test/ldapextauth/debian/copyright	                        (rev 0)
+++ trunk/gforge_base/evolvisforge/plugins.test/ldapextauth/debian/copyright	2010-02-26 00:19:01 UTC (rev 4850)
@@ -0,0 +1,25 @@
+This package was first debianized by Roland Mas <lolando at debian.org>
+on Sun, 14 Dec 2003 21:52:12 +0100.
+
+Upstream Author: Roland Mas <lolando at debian.org> (Based on an idea and
+preliminary code by Joseph Bironas <j.bironas at niteo.com>).  Later
+refined by same Roland Mas under contract for Gforge Group, LLC.
+
+Copyright:
+
+   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; version 2 dated June, 1991.
+
+   This package is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this package; if not, write to the Free Software
+   Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+   02111-1307, USA.
+
+On Debian GNU/Linux systems, the complete text of the GNU General
+Public License can be found in `/usr/share/common-licenses/GPL'.

Added: trunk/gforge_base/evolvisforge/plugins.test/ldapextauth/debian/dirs
===================================================================
--- trunk/gforge_base/evolvisforge/plugins.test/ldapextauth/debian/dirs	                        (rev 0)
+++ trunk/gforge_base/evolvisforge/plugins.test/ldapextauth/debian/dirs	2010-02-26 00:19:01 UTC (rev 4850)
@@ -0,0 +1,20 @@
+etc
+etc/gforge
+etc/gforge/httpd.conf.d
+etc/gforge/httpd.secrets.d
+etc/gforge/plugins
+etc/gforge/plugins/ldapextauth
+usr
+usr/lib
+usr/lib/gforge
+usr/lib/gforge/plugins/
+usr/lib/gforge/plugins/ldapextauth
+usr/lib/gforge/plugins/ldapextauth/bin
+usr/lib/gforge/plugins/ldapextauth/include
+usr/lib/gforge/plugins/ldapextauth/lib
+usr/lib/gforge/cgi-bin
+usr/share
+usr/share/gforge
+usr/share/gforge/www
+usr/share/gforge/www/plugins
+usr/share/gforge/www/plugins/ldapextauth

Added: trunk/gforge_base/evolvisforge/plugins.test/ldapextauth/debian/postinst
===================================================================
--- trunk/gforge_base/evolvisforge/plugins.test/ldapextauth/debian/postinst	                        (rev 0)
+++ trunk/gforge_base/evolvisforge/plugins.test/ldapextauth/debian/postinst	2010-02-26 00:19:01 UTC (rev 4850)
@@ -0,0 +1,50 @@
+#! /bin/sh
+# postinst script for gforge-plugin-ldapextauth
+#
+# see: dh_installdeb(1)
+
+set -e
+
+# summary of how this script can be called:
+#        * <postinst> `configure' <most-recently-configured-version>
+#        * <old-postinst> `abort-upgrade' <new version>
+#        * <conflictor's-postinst> `abort-remove' `in-favour' <package>
+#          <new-version>
+#        * <deconfigured's-postinst> `abort-deconfigure' `in-favour'
+#          <failed-install-package> <version> `removing'
+#          <conflicting-package> <version>
+# for details, see http://www.debian.org/doc/debian-policy/ or
+# the debian-policy package
+#
+# quoting from the policy:
+#     Any necessary prompting should almost always be confined to the
+#     post-installation script, and should be protected with a conditional
+#     so that unnecessary prompting doesn't happen if a package's
+#     installation fails and the `postinst' is called with `abort-upgrade',
+#     `abort-remove' or `abort-deconfigure'.
+
+case "$1" in
+    configure)
+	/usr/lib/gforge/plugins/ldapextauth/bin/db-upgrade.pl
+	/usr/lib/gforge/bin/register-plugin ldapextauth "LDAP external authentication"
+	invoke-rc.d apache reload
+    ;;
+
+    abort-upgrade|abort-remove|abort-deconfigure)
+
+    ;;
+
+    *)
+        echo "postinst called with unknown argument \`$1'" >&2
+        exit 1
+    ;;
+esac
+
+# dh_installdeb will replace this with shell code automatically
+# generated by other debhelper scripts.
+
+#DEBHELPER#
+
+exit 0
+
+

Added: trunk/gforge_base/evolvisforge/plugins.test/ldapextauth/debian/prerm
===================================================================
--- trunk/gforge_base/evolvisforge/plugins.test/ldapextauth/debian/prerm	                        (rev 0)
+++ trunk/gforge_base/evolvisforge/plugins.test/ldapextauth/debian/prerm	2010-02-26 00:19:01 UTC (rev 4850)
@@ -0,0 +1,41 @@
+#! /bin/sh
+# prerm script for gforge-plugin-ldapextauth
+#
+# see: dh_installdeb(1)
+
+set -e
+
+# summary of how this script can be called:
+#        * <prerm> `remove'
+#        * <old-prerm> `upgrade' <new-version>
+#        * <new-prerm> `failed-upgrade' <old-version>
+#        * <conflictor's-prerm> `remove' `in-favour' <package> <new-version>
+#        * <deconfigured's-prerm> `deconfigure' `in-favour'
+#          <package-being-installed> <version> `removing'
+#          <conflicting-package> <version>
+# for details, see http://www.debian.org/doc/debian-policy/ or
+# the debian-policy package
+
+
+case "$1" in
+    remove|deconfigure)
+	/usr/lib/gforge/bin/unregister-plugin ldapextauth
+	invoke-rc.d apache reload
+	/usr/lib/gforge/plugins/ldapextauth/bin/db-delete.pl
+        ;;
+    upgrade|failed-upgrade)
+        ;;
+    *)
+        echo "prerm called with unknown argument \`$1'" >&2
+        exit 1
+    ;;
+esac
+
+# dh_installdeb will replace this with shell code automatically
+# generated by other debhelper scripts.
+
+#DEBHELPER#
+
+exit 0
+
+

Added: trunk/gforge_base/evolvisforge/plugins.test/ldapextauth/debian/rules
===================================================================
--- trunk/gforge_base/evolvisforge/plugins.test/ldapextauth/debian/rules	                        (rev 0)
+++ trunk/gforge_base/evolvisforge/plugins.test/ldapextauth/debian/rules	2010-02-26 00:19:01 UTC (rev 4850)
@@ -0,0 +1,91 @@
+#!/usr/bin/make -f
+# Sample debian/rules that uses debhelper.
+# GNU copyright 1997 to 1999 by Joey Hess.
+
+# Uncomment this to turn on verbose mode.
+#export DH_VERBOSE=1
+
+# This is the debhelper compatibility version to use.
+export DH_COMPAT=4
+
+export PLUGIN=ldapextauth
+
+configure: configure-stamp
+configure-stamp:
+	dh_testdir
+	# Add here commands to configure the package.
+	touch configure-stamp
+
+build: build-stamp
+
+build-stamp: configure-stamp
+	dh_testdir
+	touch build-stamp
+
+clean:
+	dh_testdir
+	dh_testroot
+	rm -f build-stamp configure-stamp
+	dh_clean
+
+DESTDIR=$(CURDIR)/debian/gforge-plugin-$(PLUGIN)
+
+install: build
+	dh_testdir
+	dh_testroot
+	dh_clean -k
+	dh_installdirs
+
+	cp -r bin/* $(DESTDIR)/usr/lib/gforge/plugins/$(PLUGIN)/bin/
+	cp -r include/* $(DESTDIR)/usr/lib/gforge/plugins/$(PLUGIN)/include/
+	# cp -r lib/* $(DESTDIR)/usr/lib/gforge/plugins/$(PLUGIN)/lib/
+	# cp -r cgi-bin/* $(DESTDIR)/usr/lib/gforge/plugins/$(PLUGIN)/cgi-bin/
+	cp -r etc/plugins/ldapextauth/* $(DESTDIR)/etc/gforge/plugins/$(PLUGIN)/
+	# cp -r www/* $(DESTDIR)/usr/share/gforge/www/plugins/$(PLUGIN)/
+	# install -m 0644 httpd.conf $(DESTDIR)/etc/gforge/httpd.conf.d/50$(PLUGIN)
+	# install -m 0600 httpd.secrets $(DESTDIR)/etc/gforge/httpd.secrets.d/50$(PLUGIN)
+	find $(DESTDIR)/ -name CVS -type d | xargs rm -rf
+	find $(DESTDIR)/usr/lib/gforge/plugins/$(PLUGIN)/bin/ -type f | xargs chmod 0755
+	find $(DESTDIR)/usr/lib/gforge/plugins/$(PLUGIN)/include/ -type f | xargs chmod 0644
+	# find $(DESTDIR)/usr/lib/gforge/plugins/$(PLUGIN)/lib/ -type f | xargs chmod 0644
+	# find $(DESTDIR)/usr/lib/gforge/plugins/$(PLUGIN)/cgi-bin/ -type f | xargs chmod 0755
+	# find $(DESTDIR)/etc/gforge/plugins/$(PLUGIN)/ -type f | xargs chmod 0644
+	# find $(DESTDIR)/usr/share/gforge/www/plugins/$(PLUGIN)/ -type f | xargs chmod 0644
+
+
+# Build architecture-independent files here.
+binary-indep: build install
+# We have nothing to do by default.
+
+# Build architecture-dependent files here.
+binary-arch: build install
+	dh_testdir
+	dh_testroot
+#	dh_installdebconf
+	dh_installdocs
+	dh_installexamples
+	dh_installmenu
+#	dh_installlogrotate
+#	dh_installemacsen
+#	dh_installpam
+#	dh_installmime
+#	dh_installinit
+	dh_installcron
+	dh_installman
+	dh_installinfo
+#	dh_undocumented
+	dh_installchangelogs 
+	dh_link
+	dh_strip
+	dh_compress
+	dh_fixperms
+#	dh_makeshlibs
+	dh_installdeb
+#	dh_perl
+	dh_shlibdeps
+	dh_gencontrol
+	dh_md5sums
+	dh_builddeb
+
+binary: binary-indep binary-arch
+.PHONY: build clean binary-indep binary-arch binary install configure


Property changes on: trunk/gforge_base/evolvisforge/plugins.test/ldapextauth/debian/rules
___________________________________________________________________
Added: svn:executable
   + *

Added: trunk/gforge_base/evolvisforge/plugins.test/ldapextauth/etc/plugins/ldapextauth/config.php
===================================================================
--- trunk/gforge_base/evolvisforge/plugins.test/ldapextauth/etc/plugins/ldapextauth/config.php	                        (rev 0)
+++ trunk/gforge_base/evolvisforge/plugins.test/ldapextauth/etc/plugins/ldapextauth/config.php	2010-02-26 00:19:01 UTC (rev 4850)
@@ -0,0 +1,13 @@
+<?php
+
+$base_dn = "dc=users,dc=example,dc=com" ;
+$ldap_server = "ldap.example.com" ;
+//$ldap_kind="AD"; // Active Directory server
+//$ldap_port=389;
+
+// Local Variables:
+// mode: php
+// c-file-style: "bsd"
+// End:
+
+?>

Added: trunk/gforge_base/evolvisforge/plugins.test/ldapextauth/etc/plugins/ldapextauth/mapping.php
===================================================================
--- trunk/gforge_base/evolvisforge/plugins.test/ldapextauth/etc/plugins/ldapextauth/mapping.php	                        (rev 0)
+++ trunk/gforge_base/evolvisforge/plugins.test/ldapextauth/etc/plugins/ldapextauth/mapping.php	2010-02-26 00:19:01 UTC (rev 4850)
@@ -0,0 +1,40 @@
+<?php
+
+function plugin_ldapextauth_mapping ($entry) {
+	global $Language;
+	$result = array () ;
+	
+	$result['firstname'] = $entry['givenname'][0] ;
+	$result['lastname'] = $entry['sn'][0] ;
+	$result['email'] = $entry['uid'][0] . '@' . $GLOBALS['sys_default_domain'] ;
+	//$result['email'] = $entry['mail'][0] ; // AD
+	// You may also want to customise $result['language_id']
+	//$result['language_id']=$Language->getLanguageId();
+	// You may also want to customise $result['timezone']
+	//$result['timezone']=$GLOBALS['sys_default_timezone'];
+	// You may also want to customise $result['jabber_address']
+	// You may also want to customise $result['address']
+	// You may also want to customise $result['address2']
+	// You may also want to customise $result['phone']
+	//$result['phone'] = $entry['telephonenumber'][0]; //AD
+	// You may also want to customise $result['fax']
+	// You may also want to customise $result['title']
+	// You may also want to customise $result['ccode']
+	//$result['ccode']=$GLOBALS['sys_default_country_code'];
+	// You may also want to customise $result['themeid']
+	$result['themeid']=$GLOBALS['sys_default_theme_id'];
+	
+	return $result ;
+}
+
+function plugin_ldapextauth_getdn ($plugin, $username) {
+	return "uid=$username," . $plugin->base_dn ;
+	//return 'DOMAIN\\' . "$username" ; // AD
+}
+
+// Local Variables:
+// mode: php
+// c-file-style: "bsd"
+// End:
+
+?>

Added: trunk/gforge_base/evolvisforge/plugins.test/ldapextauth/gforge-plugin-ldapextauth.spec
===================================================================
--- trunk/gforge_base/evolvisforge/plugins.test/ldapextauth/gforge-plugin-ldapextauth.spec	                        (rev 0)
+++ trunk/gforge_base/evolvisforge/plugins.test/ldapextauth/gforge-plugin-ldapextauth.spec	2010-02-26 00:19:01 UTC (rev 4850)
@@ -0,0 +1,118 @@
+%define plugin		ldapextauth
+%{!?release:%define release 1}
+
+Summary: LDAP external authentication plugin for GForge CDE
+Name: gforge-plugin-%{plugin}
+Version: 4.1
+Release: %{release}
+BuildArch: noarch
+License: GPL
+Group: Development/Tools
+Source0: %{name}-%{version}.tar.bz2
+AutoReqProv: off
+Requires: gforge >= 4.0
+URL: http://www.gforge.org
+BuildRoot: %{_tmppath}/%{name}-%{version}-root
+
+%define gfuser			gforge
+%define gfgroup			gforge
+
+%if "%{_vendor}" == "suse"
+	%define httpduser		wwwrun
+	%define httpdgroup		www
+Requires: php4-ldap
+%else
+	%define httpduser		apache
+	%define httpdgroup		apache
+Requires: php-ldap
+%endif
+
+#Globals defines for gforge
+%define GFORGE_DIR		%{_datadir}/gforge
+%define GFORGE_CONF_DIR		%{_sysconfdir}/gforge
+%define GFORGE_LANG_DIR		%{GFORGE_CONF_DIR}/languages-local
+%define GFORGE_SBIN_DIR		%{_sbindir}
+%define GFORGE_LIB_DIR		%{_libdir}/gforge/lib
+%define GFORGE_DB_DIR		%{_libdir}/gforge/db
+%define GFORGE_BIN_DIR		%{_libdir}/gforge/bin
+%define PLUGINS_LIB_DIR		%{_libdir}/gforge/plugins
+%define PLUGINS_CONF_DIR	%{GFORGE_CONF_DIR}/plugins
+%define CROND_DIR		%{_sysconfdir}/cron.d
+
+#specific define for plugins
+%define PLUGIN_LIB_DIR		%{PLUGINS_LIB_DIR}/%{plugin}
+%define PLUGIN_CONF_DIR		%{PLUGINS_CONF_DIR}/%{plugin}
+
+%description
+GForge CDE is a web-based Collaborative Development Environment offering
+easy access to CVS, mailing lists, bug tracking, message
+boards/forums, task management, permanent file archival, and total
+web-based administration.
+
+This RPM installs LDAP external authentication plugin for GForge CDE.
+
+%prep
+%setup
+
+%build
+
+%install
+# cleaning build environment
+[ "$RPM_BUILD_ROOT" != "/" ] && rm -rf $RPM_BUILD_ROOT
+
+# copying all needed stuff to %{PLUGIN_LIB_DIR}
+install -m 755 -d $RPM_BUILD_ROOT/%{PLUGIN_LIB_DIR}
+for dir in bin include rpm-specific ; do
+        cp -rp $dir $RPM_BUILD_ROOT/%{PLUGIN_LIB_DIR}/
+done;
+chmod 755 $RPM_BUILD_ROOT/%{PLUGIN_LIB_DIR}/bin/db-*.pl
+
+# installing configuration file
+install -m 755 -d $RPM_BUILD_ROOT/%{PLUGIN_CONF_DIR}
+cp -p etc/plugins/%{plugin}/* $RPM_BUILD_ROOT/%{PLUGIN_CONF_DIR}/
+
+%pre
+
+%post
+if [ "$1" = "1" ] ; then
+	# register plugin in database
+	%{GFORGE_BIN_DIR}/register-plugin %{plugin} "LDAP external authentication" &> /dev/null
+	# su -l %{gfuser} -c "%{PLUGIN_LIB_DIR}/bin/db-upgrade.pl 2>&1" | grep -v ^NOTICE
+else
+	# upgrade
+	#su -l %{gfuser} -c "%{PLUGIN_LIB_DIR}/bin/db-upgrade.pl 2>&1" | grep -v ^NOTICE
+	:
+fi
+
+%postun
+if [ "$1" = "0" ] ; then
+	# unregister plugin in database
+	%{GFORGE_BIN_DIR}/unregister-plugin %{plugin}
+	#su -l %{gfuser} -c "%{PLUGIN_LIB_DIR}/bin/db-delete.pl 2>&1" | grep -v ^NOTICE
+else
+	# upgrade
+	:
+fi
+
+%clean
+[ "$RPM_BUILD_ROOT" != "/" ] && rm -rf $RPM_BUILD_ROOT
+
+%files
+%defattr(-, root, root)
+%doc README
+%attr(0660, %{httpduser}, %{gfgroup}) %config(noreplace) %{PLUGIN_CONF_DIR}/config.php
+%attr(0660, %{httpduser}, %{gfgroup}) %config(noreplace) %{PLUGIN_CONF_DIR}/mapping.php
+%{PLUGIN_LIB_DIR}/bin
+%{PLUGIN_LIB_DIR}/include
+%{PLUGIN_LIB_DIR}/rpm-specific
+
+%changelog
+* Fri Apr 29 2005 Xavier Rameau <xrameau at gmail.com>
+- Added support for SuSE
+* Thu Mar 03 2005 Guillaume Smet <guillaume-gforge at smet.org>
+- config files have moved
+* Sat Feb 19 2005 Guillaume Smet <guillaume-gforge at smet.org>
+- 4.1
+- redirects register-plugin output to /dev/null
+* Fri Nov 26 2004  Dassault Aviation <guillaume.smet at openwide.fr>
+Initial RPM packaging

Added: trunk/gforge_base/evolvisforge/plugins.test/ldapextauth/include/LdapExtAuthPlugin.class
===================================================================
--- trunk/gforge_base/evolvisforge/plugins.test/ldapextauth/include/LdapExtAuthPlugin.class	                        (rev 0)
+++ trunk/gforge_base/evolvisforge/plugins.test/ldapextauth/include/LdapExtAuthPlugin.class	2010-02-26 00:19:01 UTC (rev 4850)
@@ -0,0 +1,220 @@
+<?php
+/** External authentication via LDAP for Gforge
+ * Copyright 2003 Roland Mas <lolando at debian.org>
+ * Copyright 2004 Roland Mas <roland at gnurandal.com> 
+ *                The Gforge Group, LLC <http://gforgegroup.com/>
+ * Copyright 2004 Christian Bayle <bayle at debian.org> 
+ *
+ * This file is not part of Gforge
+ *
+ * This plugin, like Gforge, 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.
+ *
+ * GForge is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with GForge; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  US
+ */
+
+require_once('common/include/User.class');
+require_once('plugins/ldapextauth/mapping.php') ;
+
+class LdapextauthPlugin extends Plugin {
+	function LdapextauthPlugin () {
+		$this->Plugin() ;
+		$this->name = "ldapextauth";
+		$this->hooks[] = "session_before_login";
+		
+		$this->ldap_conn = false ;
+
+                $this->base_dn = "dc=mirexpress" ;
+		$this->ldap_server = $sys_ldap_server ;
+		$this->ldap_port = $sys_ldap_port ;
+		require_once('plugins/ldapextauth/config.php') ;
+		if ($base_dn) {
+			$this->base_dn = $base_dn ;
+		}
+		if ($ldap_server) {
+			$this->ldap_server = $ldap_server ;
+		}
+		if ($ldap_port) {
+			$this->ldap_port = $ldap_port ;
+		}
+		if ($ldap_kind) {
+			$this->ldap_kind = $ldap_kind ;
+		}
+	}
+	
+	function CallHook ($hookname, $params) {
+		global $Language, $HTML ;
+		
+		$loginname = $params['loginname'] ;
+		$passwd = $params['passwd'] ;
+		
+		switch ($hookname) {
+		case "session_before_login":
+			// Authenticate against LDAP
+			$this->AuthUser ($loginname, $passwd) ;
+			break;
+		case "blah":
+			// Should not happen
+			break;
+		default:
+			// Forgot something
+		}
+	}
+
+	function AuthUser ($loginname, $passwd) {
+		global $feedback,$Language;
+	
+		if (!$this->ldap_conn) {
+			$this->ldap_conn = ldap_connect ($this->ldap_server,
+							 $this->ldap_port);
+		}
+		if ($GLOBALS['sys_ldap_version']) {
+			ldap_set_option ($this->ldap_conn, LDAP_OPT_PROTOCOL_VERSION, $GLOBALS['sys_ldap_version']);
+		}
+		$dn = plugin_ldapextauth_getdn ($this, $loginname) ;
+		if(empty($dn)) {
+			$GLOBALS['ldap_auth_failed']=true;
+			return false;
+		}
+
+		$u = user_get_object_by_name ($loginname) ;
+		if ($u) {
+			// User exists in DB
+			if (@ldap_bind($this->ldap_conn, $dn, $passwd)) {
+				// Password from form is valid in LDAP
+				if (session_login_valid_dbonly ($loginname, $passwd, false)) {
+					// Also according to DB
+					$GLOBALS['ldap_auth_failed']=false;
+					return true ;
+				} else {
+					// Passwords mismatch, update DB's
+					$u->setPasswd ($passwd) ;
+					$GLOBALS['ldap_auth_failed']=false;
+					return true ;
+				}
+			} else {
+				// Wrong password according to LDAP
+				$feedback=$Language->getText('session','invalidpasswd');
+				$GLOBALS['ldap_auth_failed']=true;
+				return false ;
+			}
+		} else {
+			// User doesn't exist in DB yet
+			if (@ldap_bind($this->ldap_conn, $dn, $passwd)) {
+				// User authenticated
+				// Now get her info
+				if ($this->ldap_kind=="AD"){
+					$res = ldap_search ($this->ldap_conn, $this->base_dn, "sAMAccountName=".$loginname) ;
+				} else {
+					$res = ldap_read ($this->ldap_conn, $dn, "objectclass=*") ;
+				}
+				$info = ldap_get_entries ($this->ldap_conn,$res);
+				$ldapentry = $info[0] ;
+				
+				$mappedinfo = plugin_ldapextauth_mapping ($ldapentry) ;
+				
+				// Insert into DB
+				$u = new User () ;
+
+				$unix_name = $loginname ;
+				$firstname = '' ;
+				$lastname = '' ;
+				$password1 = $passwd ;
+				$password2 = $passwd ;
+				$email = '' ;
+				$mail_site = 1 ;
+				$mail_va = 0 ;
+				$language_id = 1 ;
+				$timezone = 'GMT' ;
+				$jabber_address = '' ;
+				$jabber_only = 0 ;
+				$theme_id = 1 ;
+				$unix_box = '' ;
+				$address = '' ;
+				$address2 = '' ;
+				$phone = '' ;
+				$fax = '' ;
+				$title = '' ;
+				$ccode = 'US' ;
+				$send_mail = false ;
+
+				if ($mappedinfo['firstname']) {
+					$firstname = $mappedinfo['firstname'] ;
+				}
+				if ($mappedinfo['lastname']) {
+					$lastname = $mappedinfo['lastname'] ;
+				}
+				if ($mappedinfo['email']) {
+					$email = $mappedinfo['email'] ;
+				}
+				if ($mappedinfo['language_id']) {
+					$language_id = $mappedinfo['language_id'] ;
+				}
+				if ($mappedinfo['timezone']) {
+					$timezone = $mappedinfo['timezone'] ;
+				}
+				if ($mappedinfo['jabber_address']) {
+					$jabber_address = $mappedinfo['jabber_address'] ;
+				}
+				if ($mappedinfo['address']) {
+					$address = $mappedinfo['address'] ;
+				}
+				if ($mappedinfo['address2']) {
+					$address2 = $mappedinfo['address2'] ;
+				}
+				if ($mappedinfo['phone']) {
+					$phone = $mappedinfo['phone'] ;
+				}
+				if ($mappedinfo['fax']) {
+					$fax = $mappedinfo['fax'] ;
+				}
+				if ($mappedinfo['title']) {
+					$title = $mappedinfo['title'] ;
+				}
+				if ($mappedinfo['ccode']) {
+					$ccode = $mappedinfo['ccode'] ;
+				}
+				if ($mappedinfo['themeid']) {
+					$theme_id = $mappedinfo['themeid'] ;
+				}
+
+				if (!$u->create ($unix_name,$firstname,$lastname,$password1,$password2,$email,
+					    $mail_site,$mail_va,$language_id,$timezone,$jabber_address,$jabber_only,$theme_id,
+					    $unix_box, $address, $address2, $phone, $fax, $title, $ccode, $send_mail)) {
+					$GLOBALS['ldap_auth_failed']=true;
+					$feedback = "<br>Error Creating User: ".$u->getErrorMessage();
+					return false;
+				}
+
+				if (!$u->setStatus ('A')) {
+					$GLOBALS['ldap_auth_failed']=true;
+					$feedback = "<br>Error Activating User: ".$u->getErrorMessage();
+					return false;
+				}
+				$GLOBALS['ldap_auth_failed']=false;
+				$GLOBALS['ldap_first_login']=true;
+				return true ;
+			} else {
+				$GLOBALS['ldap_auth_failed']=true;
+				$feedback=$Language->getText('session','invalidpasswd');
+				return false ; // Probably ignored, but just in case
+			}
+		}
+	}
+}
+
+// Local Variables:
+// mode: php
+// c-file-style: "bsd"
+// End:
+
+?>

Added: trunk/gforge_base/evolvisforge/plugins.test/ldapextauth/include/ldapextauth-init.php
===================================================================
--- trunk/gforge_base/evolvisforge/plugins.test/ldapextauth/include/ldapextauth-init.php	                        (rev 0)
+++ trunk/gforge_base/evolvisforge/plugins.test/ldapextauth/include/ldapextauth-init.php	2010-02-26 00:19:01 UTC (rev 4850)
@@ -0,0 +1,35 @@
+<?php
+/** External authentication via LDAP for Gforge
+ * Copyright 2003 Roland Mas <lolando at debian.org>
+ * Copyright 2004 Roland Mas <roland at gnurandal.com> 
+ *                The Gforge Group, LLC <http://gforgegroup.com/>
+ *
+ * This file is not part of Gforge
+ *
+ * This plugin, like Gforge, 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.
+ *
+ * GForge is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with GForge; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  US
+ */
+
+require_once ($GLOBALS['sys_plugins_path'].'/ldapextauth/include/LdapExtAuthPlugin.class') ;
+
+$LdapExtAuthPluginObject = new LdapExtAuthPlugin ;
+
+register_plugin ($LdapExtAuthPluginObject) ;
+
+// Local Variables:
+// mode: php
+// c-file-style: "bsd"
+// End:
+
+?>

Added: trunk/gforge_base/evolvisforge/plugins.test/ldapextauth/login.diff
===================================================================
--- trunk/gforge_base/evolvisforge/plugins.test/ldapextauth/login.diff	                        (rev 0)
+++ trunk/gforge_base/evolvisforge/plugins.test/ldapextauth/login.diff	2010-02-26 00:19:01 UTC (rev 4850)
@@ -0,0 +1,30 @@
+--- /var/www/gforge-4.0.2/www/account/login.php	2004-12-15 10:11:38.000000000 -0800
++++ login.php	2004-11-01 09:51:19.000000000 -0800
+@@ -60,15 +60,19 @@
+ if ($login) {
+ 	$success=session_login_valid(strtolower($form_loginname),$form_pw);
+ 	if ($success) {
+-		/*
+-			You can now optionally stay in SSL mode
+-		*/
+-		if ($return_to) {
+-			header ("Location: " . $return_to);
+-			exit;
++		if ($GLOBALS['ldap_first_login']) {
++			header ("Location: /account/");
+ 		} else {
+-			header ("Location: /my/");
+-			exit;
++			/*
++				You can now optionally stay in SSL mode
++			*/
++			if ($return_to) {
++				header ("Location: " . $return_to);
++				exit;
++			} else {
++				header ("Location: /my/");
++				exit;
++			}
+ 		}
+ 	}
+ }

Added: trunk/gforge_base/evolvisforge/plugins.test/ldapextauth/session.diff
===================================================================
--- trunk/gforge_base/evolvisforge/plugins.test/ldapextauth/session.diff	                        (rev 0)
+++ trunk/gforge_base/evolvisforge/plugins.test/ldapextauth/session.diff	2010-02-26 00:19:01 UTC (rev 4850)
@@ -0,0 +1,23 @@
+--- session.php.orig	2004-12-15 10:11:37.000000000 -0800
++++ session.php	2004-12-15 11:52:55.000000000 -0800
+@@ -133,7 +133,19 @@
+ 	$hook_params['passwd'] = $passwd ;
+ 	plugin_hook ("session_before_login", $hook_params) ;
+ 
+-	return session_login_valid_dbonly ($loginname, $passwd, $allowpending) ;
++	if ($GLOBALS['ldap_auth_failed']) {
++		return false;
++	} elseif ($GLOBALS['ldap_first_login']) {
++		if (session_login_valid_dbonly ($loginname, $passwd, $allowpending)) {
++			header("Location: /account/");
++			return true;
++		} else {
++			return false;
++		}
++	} else {
++		return session_login_valid_dbonly ($loginname, $passwd, $allowpending) ;
++	}
++
+ }
+ 
+ function session_login_valid_dbonly ($loginname, $passwd, $allowpending) {

Added: trunk/gforge_base/evolvisforge/plugins.test/scmccase/README
===================================================================
--- trunk/gforge_base/evolvisforge/plugins.test/scmccase/README	                        (rev 0)
+++ trunk/gforge_base/evolvisforge/plugins.test/scmccase/README	2010-02-26 00:19:01 UTC (rev 4850)
@@ -0,0 +1,31 @@
+gforge-plugin-scmccase
+----------------------
+
+This is the Clear Case plugin for Gforge.  It creates Clear Case
+repositories for projects.
+
+Prerequisite:
+
+- install Perl, DBI and DBD::Pg as per Gforge's INSTALL file
+
+Installation:
+
+- files from etc/ go to /etc/gforge/plugins/scmsvn
+- files from bin/ go to /usr/lib/gforge/plugins/scmsvn/bin
+- files from common/ go to /usr/lib/gforge/plugins/scmsvn/common
+- files from db/ go to  /usr/lib/gforge/plugins/scmsvn/db
+
+Setup:
+
+- customise files in /etc/gforge/plugins/scmsvn to match your
+preferences (Clear Case server, and whether to enable Clear Case by
+default for new projects)
+- setup the crontab from debian/cron.d
+- /usr/lib/gforge/plugins/scmsvn/bin/db-upgrade.pl
+- /usr/lib/gforge/bin/register-plugin scmccase "Clear Case"
+
+ -- Roland Mas <lolando at debian.org>, Tue May 18 22:14:38 2004
+
+Local Variables:
+mode: readme-debian
+End:

Added: trunk/gforge_base/evolvisforge/plugins.test/scmccase/bin/ccase_dump_update.pl
===================================================================
--- trunk/gforge_base/evolvisforge/plugins.test/scmccase/bin/ccase_dump_update.pl	                        (rev 0)
+++ trunk/gforge_base/evolvisforge/plugins.test/scmccase/bin/ccase_dump_update.pl	2010-02-26 00:19:01 UTC (rev 4850)
@@ -0,0 +1,74 @@
+#!/usr/bin/perl
+#
+# $Id$
+#
+# ccase_dump_update.pl - script to dump data from the database 
+#	                 and update Clear Case consequently
+#		         inspired from sourceforge scripts
+# Christian Bayle <bayle at debian.org>
+# Roland Mas <lolando at debian.org>
+#
+use DBI;
+use Sys::Hostname;
+
+require("/usr/lib/gforge/lib/include.pl"); # Include all the predefined functions
+require($db_include); # Include global configuration variables
+require("/etc/gforge/plugins/scmccase/config.pl"); # Include plugin config vars
+
+my $verbose = 0;
+
+if($verbose) {print ("\nConnecting to database");}
+&db_connect;
+
+$query = "SELECT plugin_id FROM plugins WHERE plugin_name = 'scmccase'" ;
+$c = $dbh->prepare ($query) ;
+$c->execute () ;
+my ($plugin_id) = $c->fetchrow () ;
+$c->finish () ;
+
+if($verbose) {print ("\nGetting group list");}
+$query = "SELECT groups.group_id, unix_group_name, status
+          FROM groups, group_plugin, plugin_scmccase_group_usage
+          WHERE groups.group_id = group_plugin.group_id
+          AND group_plugin.plugin_id = $plugin_id
+          AND plugin_scmccase_group_usage.group_id = groups.group_id
+          AND plugin_scmccase_group_usage.ccase_host = '$this_server'" ;
+
+$c = $dbh->prepare($query);
+$c->execute();
+
+open LSVOB, "$cleartool lsvob $group_name |" ;
+while ($ls = <LSVOB>) {
+    chomp $ls ;
+    push @vobs, $ls ;
+}
+close LSVOB ;
+
+while(my ($group_id, $group_name, $status) = $c->fetchrow()) {
+
+    $ccase_uid = $group_id + $anoncvs_uid_add;
+    $ccase_gid = $group_id + $gid_add;
+
+    $group_exists = (-d $grpdir_prefix . $group_name);
+    
+    $vob_tag = $tag_pattern ;
+    $vob_tag =~ s/GROUPNAME/$group_name/g ;
+
+    $ccase_exists = 0 ;
+    foreach $ls (@vobs) {
+	if ($ls =~ /\s$vob_tag\s/) {
+	    $ccase_exists = 1  ;
+	}
+    }
+
+    # CCASE repository creation
+    if ($group_exists && !$ccase_exists && $status eq 'A') {
+	if($verbose){print("Creating a Clear Case VOB for $group_name with VOB-tag $vob_tag\n");}
+	
+	# Firce create the VOB
+	system("$cleartool mkvob --tag $vob_tag --comment 'Clear Case VOB for project $group_name'");
+	
+	# Set group ownership, anonymous group user
+	system("$cleartool protectvob --force --chgrp $group_name $vob_tag");
+    }
+}


Property changes on: trunk/gforge_base/evolvisforge/plugins.test/scmccase/bin/ccase_dump_update.pl
___________________________________________________________________
Added: svn:executable
   + *

Added: trunk/gforge_base/evolvisforge/plugins.test/scmccase/bin/db-delete.pl
===================================================================
--- trunk/gforge_base/evolvisforge/plugins.test/scmccase/bin/db-delete.pl	                        (rev 0)
+++ trunk/gforge_base/evolvisforge/plugins.test/scmccase/bin/db-delete.pl	2010-02-26 00:19:01 UTC (rev 4850)
@@ -0,0 +1,112 @@
+#!/usr/bin/perl -w
+#
+# $Id$
+#
+# Debian-specific script to delete plugin-specific tables
+# Roland Mas <lolando at debian.org>
+
+use strict ;
+use diagnostics ;
+
+use DBI ;
+use MIME::Base64 ;
+use HTML::Entities ;
+
+use vars qw/$dbh @reqlist $query/ ;
+use vars qw/$sys_default_domain $sys_cvs_host $sys_download_host
+    $sys_shell_host $sys_users_host $sys_docs_host $sys_lists_host
+    $sys_dns1_host $sys_dns2_host $FTPINCOMING_DIR $FTPFILES_DIR
+    $sys_urlroot $sf_cache_dir $sys_name $sys_themeroot
+    $sys_news_group $sys_dbhost $sys_dbname $sys_dbuser $sys_dbpasswd
+    $sys_ldap_base_dn $sys_ldap_host $admin_login $admin_password
+    $server_admin $domain_name $newsadmin_groupid $statsadmin_groupid
+    $skill_list/ ;
+use vars qw/$pluginname $pluginid/ ;
+
+require ("/usr/lib/gforge/lib/include.pl") ; # Include a few predefined functions 
+require ("/usr/lib/gforge/lib/sqlparser.pm") ; # Our magic SQL parser
+require ("/usr/lib/gforge/lib/sqlhelper.pm") ; # Our SQL functions
+
+&debug ("You'll see some debugging info during this installation.") ;
+&debug ("Do not worry unless told otherwise.") ;
+
+&db_connect ;
+
+# &debug ("Connected to the database OK.") ;
+
+$pluginname = "scmccase" ;
+$pluginid = -1 ;
+
+$dbh->{AutoCommit} = 0;
+$dbh->{RaiseError} = 1;
+eval {
+    my ($sth, @array, $version, $action, $path, $target, $rname) ;
+
+    $pluginid = &get_plugin_id ($dbh, $pluginname) ;
+    &remove_plugin_from_groups ($dbh, $pluginid) ;
+    &remove_plugin_from_users ($dbh, $pluginid) ;
+
+    my $pattern = "plugin_" . $pluginname . '_%' ;
+
+    $query = "SELECT relname FROM pg_class WHERE relname LIKE '$pattern' AND relkind='v'" ;
+    $sth = $dbh->prepare ($query) ;
+    $sth->execute () ;
+    while (@array = $sth->fetchrow_array ()) {
+	$rname = $array [0] ;
+	&drop_view_if_exists ($dbh, $rname) ;
+    }
+    $sth->finish () ;
+
+    $query = "SELECT relname FROM pg_class WHERE relname LIKE '$pattern' AND relkind='r'" ;
+    $sth = $dbh->prepare ($query) ;
+    $sth->execute () ;
+    while (@array = $sth->fetchrow_array ()) {
+	$rname = $array [0] ;
+	&drop_table_if_exists ($dbh, $rname) ;
+    }
+    $sth->finish () ;
+
+    $query = "SELECT relname FROM pg_class WHERE relname LIKE '$pattern' AND relkind='i'" ;
+    $sth = $dbh->prepare ($query) ;
+    $sth->execute () ;
+    while (@array = $sth->fetchrow_array ()) {
+	$rname = $array [0] ;
+	&drop_index_if_exists ($dbh, $rname) ;
+    }
+    $sth->finish () ;
+
+    $query = "SELECT relname FROM pg_class WHERE relname LIKE '$pattern' AND relkind='S'" ;
+    $sth = $dbh->prepare ($query) ;
+    $sth->execute () ;
+    while (@array = $sth->fetchrow_array ()) {
+	$rname = $array [0] ;
+	&drop_sequence_if_exists ($dbh, $rname) ;
+    }
+    $sth->finish () ;
+
+    $dbh->commit ();
+
+
+    &debug ("It seems your database deletion went well and smoothly.  That's cool.") ;
+    &debug ("Please enjoy using Debian GForge.") ;
+
+    # There should be a commit at the end of every block above.
+    # If there is not, then it might be symptomatic of a problem.
+    # For safety, we roll back.
+    $dbh->rollback ();
+};
+
+if ($@) {
+    warn "Transaction aborted because $@" ;
+    &debug ("Transaction aborted because $@") ;
+    &debug ("Last SQL query was:\n$query\n(end of query)") ;
+    $dbh->rollback ;
+    &debug ("Please report this bug on the Debian bug-tracking system.") ;
+    &debug ("Please include the previous messages as well to help debugging.") ;
+    &debug ("You should not worry too much about this,") ;
+    &debug ("your DB is still in a consistent state and should be usable.") ;
+    exit 1 ;
+}
+
+$dbh->rollback ;
+$dbh->disconnect ;


Property changes on: trunk/gforge_base/evolvisforge/plugins.test/scmccase/bin/db-delete.pl
___________________________________________________________________
Added: svn:executable
   + *

Added: trunk/gforge_base/evolvisforge/plugins.test/scmccase/bin/db-upgrade.pl
===================================================================
--- trunk/gforge_base/evolvisforge/plugins.test/scmccase/bin/db-upgrade.pl	                        (rev 0)
+++ trunk/gforge_base/evolvisforge/plugins.test/scmccase/bin/db-upgrade.pl	2010-02-26 00:19:01 UTC (rev 4850)
@@ -0,0 +1,92 @@
+#!/usr/bin/perl -w
+#
+# $Id$
+#
+# Debian-specific script to upgrade the database between releases
+# Roland Mas <lolando at debian.org>
+
+use strict ;
+use diagnostics ;
+
+use DBI ;
+use MIME::Base64 ;
+use HTML::Entities ;
+
+use vars qw/$dbh @reqlist $query/ ;
+use vars qw/$sys_default_domain $sys_cvs_host $sys_download_host
+    $sys_shell_host $sys_users_host $sys_docs_host $sys_lists_host
+    $sys_dns1_host $sys_dns2_host $FTPINCOMING_DIR $FTPFILES_DIR
+    $sys_urlroot $sf_cache_dir $sys_name $sys_themeroot
+    $sys_news_group $sys_dbhost $sys_dbname $sys_dbuser $sys_dbpasswd
+    $sys_ldap_base_dn $sys_ldap_host $admin_login $admin_password
+    $server_admin $domain_name $newsadmin_groupid $statsadmin_groupid
+    $skill_list/ ;
+use vars qw/$pluginname/ ;
+
+require ("/usr/lib/gforge/lib/include.pl") ; # Include a few predefined functions 
+require ("/usr/lib/gforge/lib/sqlparser.pm") ; # Our magic SQL parser
+require ("/usr/lib/gforge/lib/sqlhelper.pm") ; # Our SQL functions
+
+&debug ("You'll see some debugging info during this installation.") ;
+&debug ("Do not worry unless told otherwise.") ;
+
+&db_connect ;
+
+# &debug ("Connected to the database OK.") ;
+
+$pluginname = "scmccase" ;
+
+$dbh->{AutoCommit} = 0;
+$dbh->{RaiseError} = 1;
+eval {
+    my ($sth, @array, $version, $path, $target) ;
+
+    &create_plugin_metadata_table ($dbh, $pluginname, "0") ;
+    
+    $version = &get_plugin_db_version ($dbh, $pluginname) ;
+    $target = "0.1" ;
+    if (&is_lesser ($version, $target)) {
+	my @filelist = ( "/usr/lib/gforge/plugins/$pluginname/db/$pluginname-init.sql" ) ;
+	
+	foreach my $file (@filelist) {
+	    &debug ("Processing $file") ;
+	    @reqlist = @{ &parse_sql_file ($file) } ;
+	    
+	    foreach my $s (@reqlist) {
+		$query = $s ;
+		# &debug ($query) ;
+		$sth = $dbh->prepare ($query) ;
+		$sth->execute () ;
+		$sth->finish () ;
+	    }
+	}
+	@reqlist = () ;
+	
+	&update_plugin_db_version ($dbh, $pluginname, $target) ;
+	&debug ("Committing.") ;
+	$dbh->commit () ;
+    }
+    
+    &debug ("It seems your database install/upgrade went well and smoothly.  That's cool.") ;
+    &debug ("Please enjoy using Debian GForge.") ;
+
+    # There should be a commit at the end of every block above.
+    # If there is not, then it might be symptomatic of a problem.
+    # For safety, we roll back.
+    $dbh->rollback ();
+};
+
+if ($@) {
+    warn "Transaction aborted because $@" ;
+    &debug ("Transaction aborted because $@") ;
+    &debug ("Last SQL query was:\n$query\n(end of query)") ;
+    $dbh->rollback ;
+    &debug ("Please report this bug on the Debian bug-tracking system.") ;
+    &debug ("Please include the previous messages as well to help debugging.") ;
+    &debug ("You should not worry too much about this,") ;
+    &debug ("your DB is still in a consistent state and should be usable.") ;
+    exit 1 ;
+}
+
+$dbh->rollback ;
+$dbh->disconnect ;


Property changes on: trunk/gforge_base/evolvisforge/plugins.test/scmccase/bin/db-upgrade.pl
___________________________________________________________________
Added: svn:executable
   + *

Added: trunk/gforge_base/evolvisforge/plugins.test/scmccase/bin/install-ccase.sh
===================================================================
--- trunk/gforge_base/evolvisforge/plugins.test/scmccase/bin/install-ccase.sh	                        (rev 0)
+++ trunk/gforge_base/evolvisforge/plugins.test/scmccase/bin/install-ccase.sh	2010-02-26 00:19:01 UTC (rev 4850)
@@ -0,0 +1,25 @@
+#! /bin/sh
+# 
+# $Id$
+#
+# Configure CVS for Sourceforge
+# Christian Bayle, Roland Mas, debian-sf (Sourceforge for Debian)
+
+set -e
+
+if [ $(id -u) != 0 ] ; then
+    echo "You must be root to run this, please enter passwd"
+    exec su -c "$0 $1"
+fi
+
+case "$1" in
+    configure)
+	;;
+
+    purge)
+	;;
+
+    *)
+	echo "Usage: $0 {configure|purge}"
+	exit 1
+esac


Property changes on: trunk/gforge_base/evolvisforge/plugins.test/scmccase/bin/install-ccase.sh
___________________________________________________________________
Added: svn:executable
   + *

Added: trunk/gforge_base/evolvisforge/plugins.test/scmccase/common/CCasePlugin.class
===================================================================
--- trunk/gforge_base/evolvisforge/plugins.test/scmccase/common/CCasePlugin.class	                        (rev 0)
+++ trunk/gforge_base/evolvisforge/plugins.test/scmccase/common/CCasePlugin.class	2010-02-26 00:19:01 UTC (rev 4850)
@@ -0,0 +1,248 @@
+<?php
+/** Clear Case plugin for Gforge
+ * Copyright 2003 Roland Mas <lolando at debian.org>
+ * Copyright 2004 Roland Mas <roland at gnurandal.com> 
+ *                The Gforge Group, LLC <http://gforgegroup.com/>
+ * Based on the CVS plugin, which was derived from Gforge, which was
+ * derived from Sourceforge
+ *
+ * This file is not part of Gforge
+ *
+ * This plugin, like Gforge, 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.
+ *
+ * GForge is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with GForge; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  US
+ */
+
+require_once('common/include/User.class');
+
+class CCasePlugin extends SCM {
+	function CCasePlugin () {
+		$this->SCM () ;
+		$this->name = "scmccase";
+		$this->hooks[] = "scm_page";
+		$this->hooks[] = "scm_admin_update";
+		$this->hooks[] = "scm_admin_page";
+		$this->hooks[] = "scm_stats";
+		$this->hooks[] = "group_approved";
+		$this->hooks[] = "scm_plugin";
+
+                require_once('/etc/gforge/plugins/scmccase/config.php') ;
+		
+		$this->default_ccase_server = $default_ccase_server ;
+		$this->this_server = $this_server ;
+		$this->tag_pattern = $tag_pattern ;
+		$this->enabled_by_default = $enabled_by_default ;
+
+		$this->register () ;
+	}
+
+	function CallHook ($hookname, $params) {
+		global $Language, $HTML ;
+		
+		switch ($hookname) {
+		case "scm_page":
+			$group_id = $params['group_id'] ;
+			$this->display_scm_page ($group_id) ;
+			break ;
+		case "scm_admin_update":
+			$this->scm_admin_update ($params) ;
+			break ;
+		case "scm_admin_page":
+			$this->display_scm_admin_page ($params) ;
+			break ;
+		case "scm_stats":
+			$this->display_stats ($params) ;
+			break;
+		case "group_approved":
+			$this->group_approved ($params) ;
+			break;
+		case "scm_plugin":
+			$scm_plugins=& $params['scm_plugins'];
+			$scm_plugins[]=$this->name;
+			break;
+		default:
+			// Forgot something
+		}
+	}
+
+	function display_scm_page ($group_id) {
+		global $Language, $HTML ;
+
+		$project =& group_get_object($group_id);
+		
+		if ($project->usesPlugin ("scmccase")) {
+			$vob_tag = ereg_replace ("GROUPNAME", $project->getUnixName (), $this->tag_pattern) ;
+	
+		 print '<h2>Clear Case</h2>
+		                <p>Documentation for Clear Case is probably available somewhere.
+                                </p>' ;
+
+
+// ######################## table for summary info
+
+?>
+<table width="100%">
+	<tr valign="top">
+		<td width="65%">
+<?php
+// ############################ developer access
+			
+	 // echo $Language->getText('scm_index', 'devcvs');
+	 echo "<b>Clear Case Access</b>" ;
+
+	 print "<p>Either mount the VOB with <tt>cleartool mount $vob_tag</tt> or
+	 select the <tt>$vob_tag</tt> VOB in your Clear Case Explorer.
+	 </p>" ;
+
+// ################## summary info
+
+?>
+
+		</td>
+		<td width="35%">
+
+<?php
+
+// ############################## CCase Browsing
+
+$anonymous = 1;
+if (session_loggedin()) {
+   $perm =& $project->getPermission(session_get_user());
+   $anonymous = !$perm->isMember();
+}
+ 
+if ($project->enableAnonCVS() || !$anonymous) {
+	echo $HTML->boxTop($Language->getText('scm_index', 'history'));
+
+	// echo $Language->getText('scm_index', 'browsetree');
+	echo "<b>Browse the Clear Case tree</b><p>Browsing the Clear Case tree gives you a great view into the current status of this project's code. You may also view the complete histories of any file in the repository.</p>" ;
+
+	$browse_url = "http://" . $this->GetGroupServer($group_id) . "/ccweb" ;
+	// $browse_url = $browse_url . "?vob_tag=".$vob_tag ;
+	echo "<p><a href=\"$browse_url\">Browse</a> CCase tree</p>" ;
+
+       echo $HTML->boxBottom();
+}
+
+?>
+		</td>
+	</tr>
+</table>
+
+<?php
+
+// ************************************************
+
+
+
+		}
+
+	}
+
+	function scm_admin_update ($params) {
+		$group =& group_get_object($params['group_id']);
+
+		if ($params['scmradio'] == 'scmccase') {
+			$group->setPluginUse("scmccase", 1) ;
+			
+		} else {
+			$group->setPluginUse("scmccase", 0) ;
+		}
+// 		if ($params['scmccase_use_ccase']) {
+// 			$group->setPluginUse("scmccase", 1) ;
+			
+// 		} else {
+// 			$group->setPluginUse("scmccase", 0) ;
+// 		}
+		if ($params['scmccase_ccase_server'] && $params['scmccase_ccase_server'] != "") {
+			$this->SetGroupServer ($params['group_id'], $params['scmccase_ccase_server']) ;
+		} else {
+			$this->SetGroupServer ($params['group_id'], $this->GetDefaultServer ()) ;
+		}
+	}
+
+	function display_scm_admin_page ($params) {
+		$group =& group_get_object($params['group_id']);
+?>
+<!-- <input type="checkbox" name="scmccase_use_ccase" value="1" <?php if ($group->usesPlugin("scmccase")) {print '"checked"';} ?>> <strong>Use Clear Case</strong><br> -->
+<input type="radio" name="scmradio" value="scmccase" <?php if ($group->usesPlugin("scmccase")) {print '"checked"';} ?>> <strong>Use Clear Case</strong><br>
+<input type="text" name="scmccase_ccase_server" value="<?php echo $this->GetGroupServer ($params['group_id']) ?>"> <strong>Clear Case server</strong><br><br>
+<?php
+														      }
+
+	function display_stats ($params) {
+		global $Language ;
+		$group_id = $params['group_id'] ;
+		$result = db_query("
+			SELECT commits, adds
+			FROM plugin_scmccase_stats
+			WHERE group_id='$group_id'");
+		$commit_num = db_result($result,0,0);
+		$add_num    = db_result($result,0,1);
+		if (!$commit_num) {
+			$commit_num=0;
+		}
+		if (!$add_num) {
+			$add_num=0;
+		}
+		echo ' (CCase: '.$Language->getText('project_home','cvs_commits',array(number_format($commit_num,0),number_format($add_num,0))).")";
+		
+	}
+	
+        function group_approved ($params) {
+                $group_id = $params['group_id'] ;
+
+                $project =& group_get_object($group_id);
+
+                if ($this->enabled_by_default) {
+                        $group->setPluginUse("scmccase", 1) ;
+                } else {
+                        $group->setPluginUse("scmccase", 0) ;
+                }
+        }
+
+	function GetDefaultServer () {
+		return $this->default_ccase_server ;
+	}
+
+	function GetGroupServer ($group_id) {
+		$sql = "SELECT ccase_host FROM plugin_scmccase_group_usage WHERE group_id = $group_id" ;
+		$res = db_query($sql);
+		if (db_numrows($res) == 0) {
+			return $this->default_ccase_server ;
+		} else {
+			return db_result($res,0,'ccase_host');
+		}
+	}
+
+	function SetGroupServer ($group_id, $server) {
+		db_begin () ;
+		$sql = "SELECT ccase_host FROM plugin_scmccase_group_usage WHERE group_id = $group_id" ;
+		$res = db_query($sql);
+		if (db_numrows($res) == 0) {
+			$sql = "INSERT INTO plugin_scmccase_group_usage (group_id, ccase_host) VALUES ($group_id, '$server')" ;
+		} else {
+			$sql = "UPDATE plugin_scmccase_group_usage SET ccase_host = '$server' WHERE group_id = $group_id" ;
+			
+		}
+		$res = db_query($sql);
+		db_commit () ;
+	}
+}
+
+// Local Variables:
+// mode: php
+// c-file-style: "bsd"
+// End:
+
+?>

Added: trunk/gforge_base/evolvisforge/plugins.test/scmccase/common/scmccase-init.php
===================================================================
--- trunk/gforge_base/evolvisforge/plugins.test/scmccase/common/scmccase-init.php	                        (rev 0)
+++ trunk/gforge_base/evolvisforge/plugins.test/scmccase/common/scmccase-init.php	2010-02-26 00:19:01 UTC (rev 4850)
@@ -0,0 +1,37 @@
+<?php
+/** Clear Case plugin for Gforge
+ * Copyright 2003 Roland Mas <lolando at debian.org>
+ * Copyright 2004 Roland Mas <roland at gnurandal.com> 
+ *                The Gforge Group, LLC <http://gforgegroup.com/>
+ * Based on the CVS plugin, which was derived from Gforge, which was
+ * derived from Sourceforge
+ *
+ * This file is not part of Gforge
+ *
+ * This plugin, like Gforge, 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.
+ *
+ * GForge is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with GForge; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  US
+ */
+
+require_once ($GLOBALS['sys_plugins_path'].'/scmccase/common/CCasePlugin.class') ;
+
+$CCasePluginObject = new CCasePlugin ;
+
+register_plugin ($CCasePluginObject) ;
+
+// Local Variables:
+// mode: php
+// c-file-style: "bsd"
+// End:
+
+?>

Added: trunk/gforge_base/evolvisforge/plugins.test/scmccase/db/scmccase-init.sql
===================================================================
--- trunk/gforge_base/evolvisforge/plugins.test/scmccase/db/scmccase-init.sql	                        (rev 0)
+++ trunk/gforge_base/evolvisforge/plugins.test/scmccase/db/scmccase-init.sql	2010-02-26 00:19:01 UTC (rev 4850)
@@ -0,0 +1,24 @@
+CREATE SEQUENCE plugin_scmccase_grp_usage_pk_seq ;
+
+CREATE TABLE plugin_scmccase_group_usage (
+	group_usage_id integer DEFAULT nextval('plugin_scmccase_grp_usage_pk_seq'::text) NOT NULL,
+	group_id integer DEFAULT 0 NOT NULL,
+	ccase_host text DEFAULT '' NOT NULL,
+	CONSTRAINT "plugin_scmccase_group_usage_pkey" PRIMARY KEY ("group_usage_id"),
+	CONSTRAINT "plugin_scmccase_groupusage_groupid_fkey" FOREIGN KEY (group_id) REFERENCES groups(group_id) MATCH FULL ON DELETE CASCADE
+) ;
+
+CREATE SEQUENCE plugin_scmccase_stats_pk_seq ;
+
+CREATE TABLE plugin_scmccase_stats (
+	stats_id integer DEFAULT nextval('plugin_scmccase_stats_pk_seq'::text) NOT NULL,
+	group_id integer DEFAULT 0 NOT NULL,
+	last_check_date integer DEFAULT 0 NOT NULL,
+	last_repo_version integer DEFAULT 0 NOT NULL,
+	adds integer DEFAULT 0 NOT NULL,
+	deletes integer DEFAULT 0 NOT NULL,
+	commits integer DEFAULT 0 NOT NULL,
+	changes integer DEFAULT 0 NOT NULL,
+	CONSTRAINT "plugin_scmccase_stats_pkey" PRIMARY KEY ("stats_id"),
+	CONSTRAINT "plugin_scmccase_stats_groupid_fkey" FOREIGN KEY (group_id) REFERENCES groups(group_id) MATCH FULL ON DELETE CASCADE
+) ;

Added: trunk/gforge_base/evolvisforge/plugins.test/scmccase/debian/README.Debian
===================================================================
--- trunk/gforge_base/evolvisforge/plugins.test/scmccase/debian/README.Debian	                        (rev 0)
+++ trunk/gforge_base/evolvisforge/plugins.test/scmccase/debian/README.Debian	2010-02-26 00:19:01 UTC (rev 4850)
@@ -0,0 +1,6 @@
+gforge-plugin-scmccase for Debian
+---------------------------------
+
+This plugin holds the Clear Case stuff.
+
+ -- Roland Mas <lolando at debian.org>, Sat May  8 13:57:22 2004

Added: trunk/gforge_base/evolvisforge/plugins.test/scmccase/debian/changelog
===================================================================
--- trunk/gforge_base/evolvisforge/plugins.test/scmccase/debian/changelog	                        (rev 0)
+++ trunk/gforge_base/evolvisforge/plugins.test/scmccase/debian/changelog	2010-02-26 00:19:01 UTC (rev 4850)
@@ -0,0 +1,6 @@
+gforge-plugin-scmccase (1.0-1) experimental; urgency=low
+
+  * Initial packaging.
+
+ -- Roland Mas <lolando at debian.org>  Mon,  3 May 2004 22:03:26 +0200
+

Added: trunk/gforge_base/evolvisforge/plugins.test/scmccase/debian/control
===================================================================
--- trunk/gforge_base/evolvisforge/plugins.test/scmccase/debian/control	                        (rev 0)
+++ trunk/gforge_base/evolvisforge/plugins.test/scmccase/debian/control	2010-02-26 00:19:01 UTC (rev 4850)
@@ -0,0 +1,15 @@
+Source: gforge-plugin-scmccase
+Section: contrib/devel
+Priority: optional
+Maintainer: Roland Mas <lolando at debian.org>
+Uploaders: Christian Bayle <bayle at debian.org>
+Build-Depends-Indep: debhelper (>> 4.0.0)
+Standards-Version: 3.6.1
+
+Package: gforge-plugin-scmccase
+Architecture: all
+Depends: gforge-common, gforge-db-postgresql | gforge-db, gforge-web-apache | gforge-web
+Description: The Clear Case plugin for GForge
+ This plug-in contains the Clear Case subsystem of Gforge.  It allows
+ each Gforge project to have its own Clear Case repository, and gives
+ some control over it to the project's administrator.

Added: trunk/gforge_base/evolvisforge/plugins.test/scmccase/debian/copyright
===================================================================
--- trunk/gforge_base/evolvisforge/plugins.test/scmccase/debian/copyright	                        (rev 0)
+++ trunk/gforge_base/evolvisforge/plugins.test/scmccase/debian/copyright	2010-02-26 00:19:01 UTC (rev 4850)
@@ -0,0 +1,28 @@
+This package was debianized by Roland Mas <lolando at debian.org> on
+Mon, 03 May 2004 22:04:08 +0200.
+
+It was downloaded from <http://gforge.org/>
+
+Upstream Author: Roland Mas <lolando at debian.org> (partly under
+contract for the Gforge Group, LLC), but the code is derived from
+Gforge code, which was itself a derivative of the Sourceforge code,
+which was copyright VA Linux Systems.
+
+Copyright:
+
+   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; version 2 dated June, 1991.
+
+   This package is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this package; if not, write to the Free Software
+   Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+   02111-1307, USA.
+
+On Debian GNU/Linux systems, the complete text of the GNU General
+Public License can be found in `/usr/share/common-licenses/GPL'.

Added: trunk/gforge_base/evolvisforge/plugins.test/scmccase/debian/cron.d
===================================================================
--- trunk/gforge_base/evolvisforge/plugins.test/scmccase/debian/cron.d	                        (rev 0)
+++ trunk/gforge_base/evolvisforge/plugins.test/scmccase/debian/cron.d	2010-02-26 00:19:01 UTC (rev 4850)
@@ -0,0 +1,4 @@
+#
+# Regular cron jobs for the gforge-plugin-scmccase package
+#
+

Added: trunk/gforge_base/evolvisforge/plugins.test/scmccase/debian/dirs
===================================================================
--- trunk/gforge_base/evolvisforge/plugins.test/scmccase/debian/dirs	                        (rev 0)
+++ trunk/gforge_base/evolvisforge/plugins.test/scmccase/debian/dirs	2010-02-26 00:19:01 UTC (rev 4850)
@@ -0,0 +1,22 @@
+bin
+etc
+etc/gforge
+etc/gforge/httpd.d
+etc/gforge/httpd.secrets.d
+etc/gforge/plugins
+etc/gforge/plugins/scmccase
+usr
+usr/lib
+usr/lib/gforge
+usr/lib/gforge/plugins/
+usr/lib/gforge/plugins/scmccase
+usr/lib/gforge/plugins/scmccase/bin
+usr/lib/gforge/plugins/scmccase/cgi-bin
+usr/lib/gforge/plugins/scmccase/include
+usr/lib/gforge/plugins/scmccase/lib
+usr/lib/gforge/cgi-bin/plugins/scmccase
+usr/share
+usr/share/gforge
+usr/share/gforge/www
+usr/share/gforge/www/plugins
+usr/share/gforge/www/plugins/scmccase

Added: trunk/gforge_base/evolvisforge/plugins.test/scmccase/debian/postinst
===================================================================
--- trunk/gforge_base/evolvisforge/plugins.test/scmccase/debian/postinst	                        (rev 0)
+++ trunk/gforge_base/evolvisforge/plugins.test/scmccase/debian/postinst	2010-02-26 00:19:01 UTC (rev 4850)
@@ -0,0 +1,63 @@
+#! /bin/sh
+# postinst script for gforge-plugin-scmccase
+#
+# see: dh_installdeb(1)
+
+set -e
+
+# summary of how this script can be called:
+#        * <postinst> `configure' <most-recently-configured-version>
+#        * <old-postinst> `abort-upgrade' <new version>
+#        * <conflictor's-postinst> `abort-remove' `in-favour' <package>
+#          <new-version>
+#        * <deconfigured's-postinst> `abort-deconfigure' `in-favour'
+#          <failed-install-package> <version> `removing'
+#          <conflicting-package> <version>
+# for details, see http://www.debian.org/doc/debian-policy/ or
+# the debian-policy package
+#
+# quoting from the policy:
+#     Any necessary prompting should almost always be confined to the
+#     post-installation script, and should be protected with a conditional
+#     so that unnecessary prompting doesn't happen if a package's
+#     installation fails and the `postinst' is called with `abort-upgrade',
+#     `abort-remove' or `abort-deconfigure'.
+
+case "$1" in
+    configure)
+	/usr/sbin/gforge-config
+
+	# Prepare database
+	/usr/lib/gforge/plugins/scmccase/bin/db-upgrade.pl
+	/usr/lib/gforge/bin/register-plugin scmccase "Clear Case"
+	invoke-rc.d apache reload
+
+        # Setup Clear Case
+	/usr/lib/gforge/plugins/scmccase/bin/install-ccase.sh configure
+
+	# Making user group and svn update from database 
+	/usr/lib/gforge/bin/update-user-group-cvs.sh
+	# /usr/lib/gforge/plugins/scmccase/bin/ccase_dump_update.pl
+
+	# Restart some services
+	# [ -d /etc/ssh ] && invoke-rc.d ssh start || true
+	# [ -d /etc/ssh-nonfree ] && invoke-rc.d ssh-nonfree start || true
+	
+    ;;
+
+    abort-upgrade|abort-remove|abort-deconfigure)
+
+    ;;
+
+    *)
+        echo "postinst called with unknown argument \`$1'" >&2
+        exit 1
+    ;;
+esac
+
+# dh_installdeb will replace this with shell code automatically
+# generated by other debhelper scripts.
+
+#DEBHELPER#
+
+exit 0

Added: trunk/gforge_base/evolvisforge/plugins.test/scmccase/debian/postrm.ex
===================================================================
--- trunk/gforge_base/evolvisforge/plugins.test/scmccase/debian/postrm.ex	                        (rev 0)
+++ trunk/gforge_base/evolvisforge/plugins.test/scmccase/debian/postrm.ex	2010-02-26 00:19:01 UTC (rev 4850)
@@ -0,0 +1,38 @@
+#! /bin/sh
+# postrm script for gforge-plugin-scmsvn
+#
+# see: dh_installdeb(1)
+
+set -e
+
+# summary of how this script can be called:
+#        * <postrm> `remove'
+#        * <postrm> `purge'
+#        * <old-postrm> `upgrade' <new-version>
+#        * <new-postrm> `failed-upgrade' <old-version>
+#        * <new-postrm> `abort-install'
+#        * <new-postrm> `abort-install' <old-version>
+#        * <new-postrm> `abort-upgrade' <old-version>
+#        * <disappearer's-postrm> `disappear' <r>overwrit>r> <new-version>
+# for details, see http://www.debian.org/doc/debian-policy/ or
+# the debian-policy package
+
+
+case "$1" in
+       purge|remove|upgrade|failed-upgrade|abort-install|abort-upgrade|disappear)
+
+
+        ;;
+
+    *)
+        echo "postrm called with unknown argument \`$1'" >&2
+        exit 1
+
+esac
+
+# dh_installdeb will replace this with shell code automatically
+# generated by other debhelper scripts.
+
+#DEBHELPER#
+
+exit 0

Added: trunk/gforge_base/evolvisforge/plugins.test/scmccase/debian/preinst.ex
===================================================================
--- trunk/gforge_base/evolvisforge/plugins.test/scmccase/debian/preinst.ex	                        (rev 0)
+++ trunk/gforge_base/evolvisforge/plugins.test/scmccase/debian/preinst.ex	2010-02-26 00:19:01 UTC (rev 4850)
@@ -0,0 +1,44 @@
+#! /bin/sh
+# preinst script for gforge-plugin-scmsvn
+#
+# see: dh_installdeb(1)
+
+set -e
+
+# summary of how this script can be called:
+#        * <new-preinst> `install'
+#        * <new-preinst> `install' <old-version>
+#        * <new-preinst> `upgrade' <old-version>
+#        * <old-preinst> `abort-upgrade' <new-version>
+#
+# for details, see http://www.debian.org/doc/debian-policy/ or
+# the debian-policy package
+
+
+case "$1" in
+    install|upgrade)
+#        if [ "$1" = "upgrade" ]
+#        then
+#            start-stop-daemon --stop --quiet --oknodo  \
+#                --pidfile /var/run/gforge-plugin-scmsvn.pid  \
+#                --exec /usr/sbin/gforge-plugin-scmsvn 2>/dev/null || true
+#        fi
+    ;;
+
+    abort-upgrade)
+    ;;
+
+    *)
+        echo "preinst called with unknown argument \`$1'" >&2
+        exit 1
+    ;;
+esac
+
+# dh_installdeb will replace this with shell code automatically
+# generated by other debhelper scripts.
+
+#DEBHELPER#
+
+exit 0
+
+

Added: trunk/gforge_base/evolvisforge/plugins.test/scmccase/debian/prerm
===================================================================
--- trunk/gforge_base/evolvisforge/plugins.test/scmccase/debian/prerm	                        (rev 0)
+++ trunk/gforge_base/evolvisforge/plugins.test/scmccase/debian/prerm	2010-02-26 00:19:01 UTC (rev 4850)
@@ -0,0 +1,41 @@
+#! /bin/sh
+# prerm script for gforge-plugin-scmccase
+#
+# see: dh_installdeb(1)
+
+set -e
+
+# summary of how this script can be called:
+#        * <prerm> `remove'
+#        * <old-prerm> `upgrade' <new-version>
+#        * <new-prerm> `failed-upgrade' <old-version>
+#        * <conflictor's-prerm> `remove' `in-favour' <package> <new-version>
+#        * <deconfigured's-prerm> `deconfigure' `in-favour'
+#          <package-being-installed> <version> `removing'
+#          <conflicting-package> <version>
+# for details, see http://www.debian.org/doc/debian-policy/ or
+# the debian-policy package
+
+
+case "$1" in
+    remove|deconfigure)
+	/usr/lib/gforge/plugins/scmccase/bin/db-delete.pl
+	/usr/lib/gforge/bin/unregister-plugin scmccase
+	invoke-rc.d apache reload
+        ;;
+    upgrade|failed-upgrade)
+        ;;
+    *)
+        echo "prerm called with unknown argument \`$1'" >&2
+        exit 1
+    ;;
+esac
+
+# dh_installdeb will replace this with shell code automatically
+# generated by other debhelper scripts.
+
+#DEBHELPER#
+
+exit 0
+
+

Added: trunk/gforge_base/evolvisforge/plugins.test/scmccase/debian/rules
===================================================================
--- trunk/gforge_base/evolvisforge/plugins.test/scmccase/debian/rules	                        (rev 0)
+++ trunk/gforge_base/evolvisforge/plugins.test/scmccase/debian/rules	2010-02-26 00:19:01 UTC (rev 4850)
@@ -0,0 +1,93 @@
+#!/usr/bin/make -f
+# Sample debian/rules that uses debhelper.
+# GNU copyright 1997 to 1999 by Joey Hess.
+
+# Uncomment this to turn on verbose mode.
+#export DH_VERBOSE=1
+
+# This is the debhelper compatibility version to use.
+export DH_COMPAT=4
+
+export PLUGIN=scmccase
+
+configure: configure-stamp
+configure-stamp:
+	dh_testdir
+	# Add here commands to configure the package.
+	touch configure-stamp
+
+build: build-stamp
+
+build-stamp: configure-stamp
+	dh_testdir
+	touch build-stamp
+
+clean:
+	dh_testdir
+	dh_testroot
+	rm -f build-stamp configure-stamp
+	dh_clean
+
+DESTDIR=$(CURDIR)/debian/gforge-plugin-$(PLUGIN)
+
+install: build
+	dh_testdir
+	dh_testroot
+	dh_clean -k
+	dh_installdirs
+
+	cp -r bin/* $(DESTDIR)/usr/lib/gforge/plugins/$(PLUGIN)/bin/
+	cp -r include/* $(DESTDIR)/usr/lib/gforge/plugins/$(PLUGIN)/include/
+	cp -r lib/* $(DESTDIR)/usr/lib/gforge/plugins/$(PLUGIN)/lib/
+	# cp -r cgi-bin/* $(DESTDIR)/usr/lib/gforge/plugins/$(PLUGIN)/cgi-bin/
+	# cp etc/httpd.conf $(DESTDIR)/etc/gforge/httpd.d/10$(PLUGIN)
+	cp etc/config.php $(DESTDIR)/etc/gforge/plugins/$(PLUGIN)/
+	cp etc/config.pl $(DESTDIR)/etc/gforge/plugins/$(PLUGIN)/
+	# cp -r www/* $(DESTDIR)/usr/share/gforge/www/plugins/$(PLUGIN)/
+	# install -m 0644 httpd.conf $(DESTDIR)/etc/gforge/httpd.conf.d/50$(PLUGIN)
+	# install -m 0600 httpd.secrets $(DESTDIR)/etc/gforge/httpd.secrets.d/50$(PLUGIN)
+	find $(DESTDIR)/ -name CVS -type d | xargs rm -rf
+	find $(DESTDIR)/usr/lib/gforge/plugins/$(PLUGIN)/bin/ -type f | xargs chmod 0755
+	find $(DESTDIR)/usr/lib/gforge/plugins/$(PLUGIN)/include/ -type f | xargs chmod 0644
+	find $(DESTDIR)/usr/lib/gforge/plugins/$(PLUGIN)/lib/ -type f | xargs chmod 0644
+	# find $(DESTDIR)/usr/lib/gforge/plugins/$(PLUGIN)/cgi-bin/ -type f | xargs chmod 0755
+	# find $(DESTDIR)/etc/gforge/plugins/$(PLUGIN)/ -type f | xargs chmod 0644
+	# find $(DESTDIR)/usr/share/gforge/www/plugins/$(PLUGIN)/ -type f | xargs chmod 0644
+
+
+# Build architecture-independent files here.
+binary-indep: build install
+# We have nothing to do by default.
+
+# Build architecture-dependent files here.
+binary-arch: build install
+	dh_testdir
+	dh_testroot
+#	dh_installdebconf
+	dh_installdocs
+	dh_installexamples
+	dh_installmenu
+#	dh_installlogrotate
+#	dh_installemacsen
+#	dh_installpam
+#	dh_installmime
+#	dh_installinit
+	dh_installcron
+	dh_installman
+	dh_installinfo
+#	dh_undocumented
+	dh_installchangelogs 
+	dh_link
+	dh_strip
+	dh_compress
+	dh_fixperms
+#	dh_makeshlibs
+	dh_installdeb
+#	dh_perl
+	dh_shlibdeps
+	dh_gencontrol
+	dh_md5sums
+	dh_builddeb
+
+binary: binary-indep binary-arch
+.PHONY: build clean binary-indep binary-arch binary install configure


Property changes on: trunk/gforge_base/evolvisforge/plugins.test/scmccase/debian/rules
___________________________________________________________________
Added: svn:executable
   + *

Added: trunk/gforge_base/evolvisforge/plugins.test/scmccase/etc/config.php
===================================================================
--- trunk/gforge_base/evolvisforge/plugins.test/scmccase/etc/config.php	                        (rev 0)
+++ trunk/gforge_base/evolvisforge/plugins.test/scmccase/etc/config.php	2010-02-26 00:19:01 UTC (rev 4850)
@@ -0,0 +1,14 @@
+<?php
+ 
+$default_ccase_server = "ccase." . $GLOBALS['sys_default_domain'] ;
+$this_server = "ccase." . $GLOBALS['sys_default_domain'] ;
+$enabled_by_default = 0 ;
+
+$tag_pattern = "GROUPNAME_vob" ;
+
+// Local Variables:
+// mode: php
+// c-file-style: "bsd"
+// End:
+ 
+?>

Added: trunk/gforge_base/evolvisforge/plugins.test/scmccase/etc/config.pl
===================================================================
--- trunk/gforge_base/evolvisforge/plugins.test/scmccase/etc/config.pl	                        (rev 0)
+++ trunk/gforge_base/evolvisforge/plugins.test/scmccase/etc/config.pl	2010-02-26 00:19:01 UTC (rev 4850)
@@ -0,0 +1,6 @@
+$this_server = "ccase." . $sys_default_domain ;
+
+$cleartool = "/usr/bin/cleartool" ;
+$tag_pattern = "GROUPNAME_vob" ; # GROUPNAME will be substituted
+
+1 ;

Added: trunk/gforge_base/evolvisforge/plugins.test/scmcvs/AUTHORS
===================================================================
--- trunk/gforge_base/evolvisforge/plugins.test/scmcvs/AUTHORS	                        (rev 0)
+++ trunk/gforge_base/evolvisforge/plugins.test/scmcvs/AUTHORS	2010-02-26 00:19:01 UTC (rev 4850)
@@ -0,0 +1,4 @@
+Roland Mas <99.roland.mas at aist.enst.fr>
+Christian Bayle <bayle at aist.enst.fr>
+Francisco Gimeno <kikov at kikov.org>
+Guillaume Smet <guillaume-gforge at smet.org>

Added: trunk/gforge_base/evolvisforge/plugins.test/scmcvs/COPYING
===================================================================
--- trunk/gforge_base/evolvisforge/plugins.test/scmcvs/COPYING	                        (rev 0)
+++ trunk/gforge_base/evolvisforge/plugins.test/scmcvs/COPYING	2010-02-26 00:19:01 UTC (rev 4850)
@@ -0,0 +1,341 @@
+		    GNU GENERAL PUBLIC LICENSE
+		       Version 2, June 1991
+
+ Copyright (C) 1989, 1991 Free Software Foundation, Inc.
+ 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+			    Preamble
+
+  The licenses for most software are designed to take away your
+freedom to share and change it.  By contrast, the GNU General Public
+License is intended to guarantee your freedom to share and change free
+software--to make sure the software is free for all its users.  This
+General Public License applies to most of the Free Software
+Foundation's software and to any other program whose authors commit to
+using it.  (Some other Free Software Foundation software is covered by
+the GNU Library General Public License instead.)  You can apply it to
+your programs, too.
+
+  When we speak of free software, we are referring to freedom, not
+price.  Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+this service if you wish), that you receive source code or can get it
+if you want it, that you can change the software or use pieces of it
+in new free programs; and that you know you can do these things.
+
+  To protect your rights, we need to make restrictions that forbid
+anyone to deny you these rights or to ask you to surrender the rights.
+These restrictions translate to certain responsibilities for you if you
+distribute copies of the software, or if you modify it.
+
+  For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must give the recipients all the rights that
+you have.  You must make sure that they, too, receive or can get the
+source code.  And you must show them these terms so they know their
+rights.
+
+  We protect your rights with two steps: (1) copyright the software, and
+(2) offer you this license which gives you legal permission to copy,
+distribute and/or modify the software.
+
+  Also, for each author's protection and ours, we want to make certain
+that everyone understands that there is no warranty for this free
+software.  If the software is modified by someone else and passed on, we
+want its recipients to know that what they have is not the original, so
+that any problems introduced by others will not reflect on the original
+authors' reputations.
+
+  Finally, any free program is threatened constantly by software
+patents.  We wish to avoid the danger that redistributors of a free
+program will individually obtain patent licenses, in effect making the
+program proprietary.  To prevent this, we have made it clear that any
+patent must be licensed for everyone's free use or not licensed at all.
+
+  The precise terms and conditions for copying, distribution and
+modification follow.
+
+		    GNU GENERAL PUBLIC LICENSE
+   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+  0. This License applies to any program or other work which contains
+a notice placed by the copyright holder saying it may be distributed
+under the terms of this General Public License.  The "Program", below,
+refers to any such program or work, and a "work based on the Program"
+means either the Program or any derivative work under copyright law:
+that is to say, a work containing the Program or a portion of it,
+either verbatim or with modifications and/or translated into another
+language.  (Hereinafter, translation is included without limitation in
+the term "modification".)  Each licensee is addressed as "you".
+
+Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope.  The act of
+running the Program is not restricted, and the output from the Program
+is covered only if its contents constitute a work based on the
+Program (independent of having been made by running the Program).
+Whether that is true depends on what the Program does.
+
+  1. You may copy and distribute verbatim copies of the Program's
+source code as you receive it, in any medium, provided that you
+conspicuously and appropriately publish on each copy an appropriate
+copyright notice and disclaimer of warranty; keep intact all the
+notices that refer to this License and to the absence of any warranty;
+and give any other recipients of the Program a copy of this License
+along with the Program.
+
+You may charge a fee for the physical act of transferring a copy, and
+you may at your option offer warranty protection in exchange for a fee.
+
+  2. You may modify your copy or copies of the Program or any portion
+of it, thus forming a work based on the Program, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+    a) You must cause the modified files to carry prominent notices
+    stating that you changed the files and the date of any change.
+
+    b) You must cause any work that you distribute or publish, that in
+    whole or in part contains or is derived from the Program or any
+    part thereof, to be licensed as a whole at no charge to all third
+    parties under the terms of this License.
+
+    c) If the modified program normally reads commands interactively
+    when run, you must cause it, when started running for such
+    interactive use in the most ordinary way, to print or display an
+    announcement including an appropriate copyright notice and a
+    notice that there is no warranty (or else, saying that you provide
+    a warranty) and that users may redistribute the program under
+    these conditions, and telling the user how to view a copy of this
+    License.  (Exception: if the Program itself is interactive but
+    does not normally print such an announcement, your work based on
+    the Program is not required to print an announcement.)
+
+These requirements apply to the modified work as a whole.  If
+identifiable sections of that work are not derived from the Program,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works.  But when you
+distribute the same sections as part of a whole which is a work based
+on the Program, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Program.
+
+In addition, mere aggregation of another work not based on the Program
+with the Program (or with a work based on the Program) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+  3. You may copy and distribute the Program (or a work based on it,
+under Section 2) in object code or executable form under the terms of
+Sections 1 and 2 above provided that you also do one of the following:
+
+    a) Accompany it with the complete corresponding machine-readable
+    source code, which must be distributed under the terms of Sections
+    1 and 2 above on a medium customarily used for software interchange; or,
+
+    b) Accompany it with a written offer, valid for at least three
+    years, to give any third party, for a charge no more than your
+    cost of physically performing source distribution, a complete
+    machine-readable copy of the corresponding source code, to be
+    distributed under the terms of Sections 1 and 2 above on a medium
+    customarily used for software interchange; or,
+
+    c) Accompany it with the information you received as to the offer
+    to distribute corresponding source code.  (This alternative is
+    allowed only for noncommercial distribution and only if you
+    received the program in object code or executable form with such
+    an offer, in accord with Subsection b above.)
+
+The source code for a work means the preferred form of the work for
+making modifications to it.  For an executable work, complete source
+code means all the source code for all modules it contains, plus any
+associated interface definition files, plus the scripts used to
+control compilation and installation of the executable.  However, as a
+special exception, the source code distributed need not include
+anything that is normally distributed (in either source or binary
+form) with the major components (compiler, kernel, and so on) of the
+operating system on which the executable runs, unless that component
+itself accompanies the executable.
+
+If distribution of executable or object code is made by offering
+access to copy from a designated place, then offering equivalent
+access to copy the source code from the same place counts as
+distribution of the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+  4. You may not copy, modify, sublicense, or distribute the Program
+except as expressly provided under this License.  Any attempt
+otherwise to copy, modify, sublicense or distribute the Program is
+void, and will automatically terminate your rights under this License.
+However, parties who have received copies, or rights, from you under
+this License will not have their licenses terminated so long as such
+parties remain in full compliance.
+
+  5. You are not required to accept this License, since you have not
+signed it.  However, nothing else grants you permission to modify or
+distribute the Program or its derivative works.  These actions are
+prohibited by law if you do not accept this License.  Therefore, by
+modifying or distributing the Program (or any work based on the
+Program), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Program or works based on it.
+
+  6. Each time you redistribute the Program (or any work based on the
+Program), the recipient automatically receives a license from the
+original licensor to copy, distribute or modify the Program subject to
+these terms and conditions.  You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties to
+this License.
+
+  7. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License.  If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Program at all.  For example, if a patent
+license would not permit royalty-free redistribution of the Program by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Program.
+
+If any portion of this section is held invalid or unenforceable under
+any particular circumstance, the balance of the section is intended to
+apply and the section as a whole is intended to apply in other
+circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system, which is
+implemented by public license practices.  Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+  8. If the distribution and/or use of the Program is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Program under this License
+may add an explicit geographical distribution limitation excluding
+those countries, so that distribution is permitted only in or among
+countries not thus excluded.  In such case, this License incorporates
+the limitation as if written in the body of this License.
+
+  9. The Free Software Foundation may publish revised and/or new versions
+of the General Public License from time to time.  Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+Each version is given a distinguishing version number.  If the Program
+specifies a version number of this License which applies to it and "any
+later version", you have the option of following the terms and conditions
+either of that version or of any later version published by the Free
+Software Foundation.  If the Program does not specify a version number of
+this License, you may choose any version ever published by the Free Software
+Foundation.
+
+  10. If you wish to incorporate parts of the Program into other free
+programs whose distribution conditions are different, write to the author
+to ask for permission.  For software which is copyrighted by the Free
+Software Foundation, write to the Free Software Foundation; we sometimes
+make exceptions for this.  Our decision will be guided by the two goals
+of preserving the free status of all derivatives of our free software and
+of promoting the sharing and reuse of software generally.
+
+			    NO WARRANTY
+
+  11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
+FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.  EXCEPT WHEN
+OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
+PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
+OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.  THE ENTIRE RISK AS
+TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU.  SHOULD THE
+PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
+REPAIR OR CORRECTION.
+
+  12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
+REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
+INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
+OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
+TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
+YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
+PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGES.
+
+		     END OF TERMS AND CONDITIONS
+
+	    How to Apply These Terms to Your New Programs
+
+  If you develop a new program, and you want it to be of the greatest
+possible use to the public, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these terms.
+
+  To do so, attach the following notices to the program.  It is safest
+to attach them to the start of each source file to most effectively
+convey the exclusion of warranty; and each file should have at least
+the "copyright" line and a pointer to where the full notice is found.
+
+    <one line to give the program's name and a brief idea of what it does.>
+    Copyright (C) 19yy  <name of author>
+
+    This program is free software; you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 2 of the License, or
+    (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with this program; if not, write to the Free Software
+    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+
+Also add information on how to contact you by electronic and paper mail.
+
+If the program is interactive, make it output a short notice like this
+when it starts in an interactive mode:
+
+    Gnomovision version 69, Copyright (C) 19yy name of author
+    Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
+    This is free software, and you are welcome to redistribute it
+    under certain conditions; type `show c' for details.
+
+The hypothetical commands `show w' and `show c' should show the appropriate
+parts of the General Public License.  Of course, the commands you use may
+be called something other than `show w' and `show c'; they could even be
+mouse-clicks or menu items--whatever suits your program.
+
+You should also get your employer (if you work as a programmer) or your
+school, if any, to sign a "copyright disclaimer" for the program, if
+necessary.  Here is a sample; alter the names:
+
+  Yoyodyne, Inc., hereby disclaims all copyright interest in the program
+  `Gnomovision' (which makes passes at compilers) written by James Hacker.
+
+  <signature of Ty Coon>, 1 April 1989
+  Ty Coon, President of Vice
+
+This General Public License does not permit incorporating your program into
+proprietary programs.  If your program is a subroutine library, you may
+consider it more useful to permit linking proprietary applications with the
+library.  If this is what you want to do, use the GNU Library General
+Public License instead of this License.
+

Added: trunk/gforge_base/evolvisforge/plugins.test/scmcvs/README
===================================================================
--- trunk/gforge_base/evolvisforge/plugins.test/scmcvs/README	                        (rev 0)
+++ trunk/gforge_base/evolvisforge/plugins.test/scmcvs/README	2010-02-26 00:19:01 UTC (rev 4850)
@@ -0,0 +1,20 @@
+gforge-plugin-scmcvs
+--------------------
+
+This is the CVS plugin for Gforge.  It creates CVS repositories and
+provides some functionality to manage them.
+
+Decompress the plugin tarball and place it into your plugins directory.
+Usually, this would be in a location like /opt/gforge/gforge/plugins/scmcvs
+Whereever you place it, be sure your /etc/gforge/local.inc file has
+$sys_plugins_path pointing to the plugins directory.
+
+The scmcvs/etc/plugins/scmcvs/config.php should be copied and edited
+to
+
+        /etc/gforge/plugins/scmcvs/config.php
+
+The 'Site Admin' tab on the GForge web interface now has a 'Plugin Manager'
+page where you can activate plugins on a sitewide basis. Be sure to do that
+if you want this plugin to be available to projects.
+

Added: trunk/gforge_base/evolvisforge/plugins.test/scmcvs/TODO
===================================================================
--- trunk/gforge_base/evolvisforge/plugins.test/scmcvs/TODO	                        (rev 0)
+++ trunk/gforge_base/evolvisforge/plugins.test/scmcvs/TODO	2010-02-26 00:19:01 UTC (rev 4850)
@@ -0,0 +1,5 @@
+- Add functions to retrieve:
+   * cvsroot by project
+   * list of modules by project
+   * list of branches by project
+- Try to implement a common skel for scmsvn too

Added: trunk/gforge_base/evolvisforge/plugins.test/scmcvs/bin/README
===================================================================
--- trunk/gforge_base/evolvisforge/plugins.test/scmcvs/bin/README	                        (rev 0)
+++ trunk/gforge_base/evolvisforge/plugins.test/scmcvs/bin/README	2010-02-26 00:19:01 UTC (rev 4850)
@@ -0,0 +1,23 @@
+README File for gforge-plugin-scmcvs/bin
+
+
+Syncmail provided version is ready for cvs 1.12.9.
+It has to be installed this way in loginfo
+
+ALL $PATH/TO/syncmail -u %p %{sSv} $EMAIL
+
+New syncmail has a restriction in the number of EMAILS. 
+This version is restricted to one EMAIL each line in loginfo.
+
+So, you may want to have several lines in loginfo.
+
+UPDATE:
+I have added several files called syncmail-cvs-* for
+supporting different CVS versions.
+
+The 1.11 version is not very well identified, so maybe
+could be 1.12 using -u %1{sSv} options.
+
+
+Francisco Gimeno
+<francisco _aT_ gforgegroup _dOt_ com>

Added: trunk/gforge_base/evolvisforge/plugins.test/scmcvs/bin/aclcheck.php
===================================================================
--- trunk/gforge_base/evolvisforge/plugins.test/scmcvs/bin/aclcheck.php	                        (rev 0)
+++ trunk/gforge_base/evolvisforge/plugins.test/scmcvs/bin/aclcheck.php	2010-02-26 00:19:01 UTC (rev 4850)
@@ -0,0 +1,72 @@
+#! /usr/bin/php4 -f
+<?php
+/**
+ * Implement CVS ACLs based on GForge roles
+ *
+ * Copyright 2004 GForge, LLC
+ *
+ * @version   $Id$
+ *
+ * This file is part of GForge.
+ *
+ * GForge 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.
+ *
+ * GForge is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with GForge; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  US
+ */
+
+if (((int) $_SERVER['argc']) < 1) {
+	print "Usage: ".basename(__FILE__)." /cvsroot/projectname\n";
+	exit(1);
+}
+
+require_once('plugins/scmcvs/config.php');
+require ($sys_plugins_path.'/scmcvs/common/Snoopy.class');
+
+// Input cleansing
+$env_cvsroot = (string) $_ENV['CVSROOT'];
+
+# Rules
+# 1. Must begin with /cvs/ or /cvsroot/
+# 2. Then must contain 3 - 25 alphanumeric chars or -
+preg_match("/^\/\/?(cvs)(root)*\/\/?([[:alnum:]-]{3,25})$/", $env_cvsroot, $matches);
+
+if (count($matches) == 0) {
+	print "Invalid CVS directory\n";
+	exit(1);
+}
+
+$projectName = $matches[count($matches)-1];
+
+$userArray=posix_getpwuid ( posix_geteuid ( ) );
+$userName= $userArray['name'];
+
+// Our POSTer in Gforge
+$snoopy = new Snoopy;
+
+$SubmitUrl='http'.(($use_ssl) ? 's' : '' ).'://'.$sys_default_domain.'/plugins/scmcvs/acl.php';
+$SubmitVars['group'] = $projectName;
+$SubmitVars['user'] = $userName;
+
+if ($userName == 'root') {
+	exit(0);
+} else {
+
+	$snoopy->submit($SubmitUrl,$SubmitVars);
+	if (!empty($snoopy->error) || !empty($snoopy->results)) {
+		print $snoopy->results."\n";
+		exit(1);
+	}
+
+}
+
+?>

Added: trunk/gforge_base/evolvisforge/plugins.test/scmcvs/bin/cvs-pserver
===================================================================
--- trunk/gforge_base/evolvisforge/plugins.test/scmcvs/bin/cvs-pserver	                        (rev 0)
+++ trunk/gforge_base/evolvisforge/plugins.test/scmcvs/bin/cvs-pserver	2010-02-26 00:19:01 UTC (rev 4850)
@@ -0,0 +1,15 @@
+#!/bin/sh
+
+# $Debian: cvs/debian/cvs-pserver,v 1.1 2001/04/20 16:00:54 epg Exp $
+
+CHROOTDIR=/var/lib/gforge/chroot
+CVSROOT=cvsroot # without leading "/"!
+
+# Execute pserver
+cd $CHROOTDIR
+CVS_PSERV_REPOS=$(ls -d $CVSROOT/*)
+allow_root_opts="--allow-root=/$(echo $CVS_PSERV_REPOS | sed 's: : --allow-root=/:g')"
+
+exec /usr/sbin/chroot $CHROOTDIR /usr/bin/cvs ${allow_root_opts} pserver
+
+# End of file.

Added: trunk/gforge_base/evolvisforge/plugins.test/scmcvs/bin/cvs_dump.pl
===================================================================
--- trunk/gforge_base/evolvisforge/plugins.test/scmcvs/bin/cvs_dump.pl	                        (rev 0)
+++ trunk/gforge_base/evolvisforge/plugins.test/scmcvs/bin/cvs_dump.pl	2010-02-26 00:19:01 UTC (rev 4850)
@@ -0,0 +1,62 @@
+#!/usr/bin/perl
+#
+# $Id$
+#
+# cvs_dump.pl - script to dump data from the database 
+#		       inspired from sourceforge scripts
+# Christian Bayle <bayle at debian.org>
+#
+use DBI;
+use Sys::Hostname;
+
+my $scm = 'scmcvs';
+require("/usr/lib/gforge/lib/include.pl");  # Include all the predefined functions
+require("/etc/gforge/plugins/$scm/config.pl"); # Include plugin config vars
+
+my $group_array = ();
+my $verbose = 0;
+my $scm_file = $file_dir . "/dumps/$scm.dump";
+
+if($verbose) {print ("\nConnecting to database");}
+
+if ( "$sys_dbname" ne "gforge" || "$sys_dbuser" ne "gforge" ) {
+$dbh ||= DBI->connect("DBI:Pg:dbname=$sys_dbname","$sys_dbuser","$sys_dbpasswd");
+} else {
+$dbh ||= DBI->connect("DBI:Pg:dbname=$sys_dbname");
+}
+die "Cannot connect to database: $!" if ( ! $dbh );
+
+if($verbose) {print ("\nGetting group list");}
+
+# Dump the Groups Table information
+
+$query= "SELECT groups.group_id,groups.unix_group_name,groups.status,groups.use_scm,groups.enable_pserver,groups.enable_anonscm FROM groups,group_plugin,plugins WHERE groups.unix_group_name !='' AND groups.group_id=group_plugin.group_id AND group_plugin.plugin_id=plugins.plugin_id AND plugins.plugin_name='".$scm."'";
+# AND cvs_box=$hostname to be added for multi-cvs server support
+
+$c = $dbh->prepare($query);
+$c->execute();
+
+if($verbose) {print ("\nGetting user list per group");}
+while(my ($group_id, $group_name, $status, $use_scm, $enable_pserver, $enable_anonscm) = $c->fetchrow()) {
+
+	my $new_query = "SELECT users.user_name AS user_name FROM users,user_group WHERE users.user_id=user_group.user_id AND cvs_flags=1 AND group_id=$group_id";
+	my $d = $dbh->prepare($new_query);
+	$d->execute();
+
+	my $user_list = "";
+	
+	while($user_name = $d->fetchrow()) {
+	   $user_list .= "$user_name,";
+	}
+
+	$grouplist = "$group_name:$status:$group_id:$use_scm:$enable_pserver:$enable_anonscm:$user_list\n";
+	$grouplist =~ s/,$//;
+
+	push @group_array, $grouplist;
+}
+
+# Now write out the files (not necessary, but can give info in case of problems)
+if($verbose) {print ("\nWriting list");}
+write_array_file($scm_file, @group_array);
+system("chmod o-r $scm_file");
+


Property changes on: trunk/gforge_base/evolvisforge/plugins.test/scmcvs/bin/cvs_dump.pl
___________________________________________________________________
Added: svn:executable
   + *

Added: trunk/gforge_base/evolvisforge/plugins.test/scmcvs/bin/cvs_update.pl
===================================================================
--- trunk/gforge_base/evolvisforge/plugins.test/scmcvs/bin/cvs_update.pl	                        (rev 0)
+++ trunk/gforge_base/evolvisforge/plugins.test/scmcvs/bin/cvs_update.pl	2010-02-26 00:19:01 UTC (rev 4850)
@@ -0,0 +1,195 @@
+#!/usr/bin/perl
+#
+# $Id$
+#
+# cvs_update.pl - script to update cvs from the database dump
+#		       inspired from sourceforge scripts
+# Christian Bayle <bayle at debian.org>
+#
+use DBI;
+use Sys::Hostname;
+
+require("/usr/lib/gforge/lib/include.pl");  # Include all the predefined functions
+
+my $group_array = ();
+my $verbose = 0;
+my $cvs_file = $file_dir . "/dumps/scmcvs.dump";
+my $anoncvs_uid_add = 50000;
+my $gid_add = 10000;
+
+#
+# Script parse out the database dumps and create/update/delete cvs
+#		 accounts on the client machines
+#
+# Open up all the files that we need.
+#
+if($verbose) {print ("\nReading list");}
+ at group_array = open_array_file($cvs_file);
+
+#
+# Loop through @group_array and deal w/ cvs.
+#
+if($verbose) {print ("\n\nProcessing CVS\n\n");}
+while ($ln = pop(@group_array)) {
+	chop($ln);
+	($group_name, $status, $group_id, $use_scm, $enable_pserver, $enable_anonscm, $userlist) = split(":", $ln);
+	
+	# This 50000 is really dirty until I change this file completly
+	$cvs_gid = $group_id + $anoncvs_uid_add;
+	$cvs_dir = "$cvs_root/$group_name";
+
+	$userlist =~ tr/A-Z/a-z/;
+
+	#$group_exists = (-d $grpdir_prefix/$group_name);
+	$group_exists = ($status eq 'A');
+	$cvs_exists = (-d "$cvs_root/$group_name/CVSROOT");
+
+	if (!$group_exists && $use_scm && $status eq 'A' ) {
+		print ("ERROR: $group_name home dir $grpdir_prefix/$group_name doesn't exists\n");
+		print ("	but use_scm=$use_scm\tstatus=$status\n");
+	}
+	if ($cvs_exists && !$group_exists && $status eq 'A') {
+		print ("ERROR: CVS $cvs_root/$group_name/CVSROOT exists\n");
+		print ("	but no $group_name home dir at $grpdir_prefix/$group_name\n");
+		print ("	use_scm=$use_scm\tstatus=$status\n");
+	}
+	# This for the first time
+	if (!(-d "$cvs_root")) {
+		if($verbose){print("Creating $cvs_root\n");}
+		system("mkdir -p $cvs_root");
+	}
+	# Lock dir creation
+	if (!(-d "$cvs_root/cvs-locks/$group_name")) {
+		if($verbose){print ("Creating $cvs_root/cvs-locks/$group_name\n");}
+		if ($cvs_exists){
+			system("mkdir -p $cvs_root/cvs-locks/$group_name");
+			system("chown anonscm-gforge:scm_$group_name $cvs_root/cvs-locks/$group_name");
+			system("chmod g+rw $cvs_root/cvs-locks/$group_name");
+			system("find $cvs_root/cvs-locks/$group_name -type d | xargs chmod g+s");
+			system("chmod o+rw $cvs_root/cvs-locks/$group_name");
+		}
+	}
+	# CVS repository creation
+	if ($group_exists && !$cvs_exists && $use_scm && $status eq 'A' && !(-e "$cvs_root/$group_name/CVSROOT")) {
+		if($verbose){print("Creating a CVS Repository for: $group_name\n");}
+		# Let's create a CVS repository for this group
+
+		# Firce create the repository
+		# Unix right will lock access to all users not in the group including cvsweb
+		# when anoncvs is not enabled
+		if ($enable_anonscm){
+			mkdir $cvs_dir, 0775;
+		} else {
+			mkdir $cvs_dir, 0770;
+		}
+		system("/usr/bin/cvs -d$cvs_dir init");
+
+		system("echo \"\" > $cvs_dir/CVSROOT/val-tags");
+		chmod 0664, "$cvs_dir/CVSROOT/val-tags";
+
+		# set group ownership, anonymous group user
+		system("chown -R $dummy_uid:$cvs_gid $cvs_dir");
+		# s bit to have all owned by group
+		system("chmod -R g+rw $cvs_dir");
+		system("find $cvs_dir -type d | xargs chmod g+s");
+	}
+	# Change owners
+	my $uid=$dummy_uid;
+	my $gid=$cvs_gid;
+	if (-d "$cvs_root/$group_name") {
+		my $realuid=get_file_owner_uid("$cvs_root/$group_name");
+		if (!($uid eq $realuid)){
+			if($verbose){print("Changing owner of $cvs_root/$group_name $realuid -> $uid\n")};
+			system("chown -R $uid $cvs_root/$group_name");
+		}
+		my $realgid=get_file_owner_gid("$cvs_root/$group_name");
+		if (!($gid eq $realgid)){
+			if($verbose){print("Changing group of $cvs_root/$group_name $realgid -> $gid\n")};
+			system("chgrp -R $gid $cvs_root/$group_name");
+		}
+		system("chown anonscm-gforge $cvs_root/$group_name/CVSROOT/history");
+	}
+
+	# Right management
+	if ($group_exists && $use_scm && $status eq 'A'){
+		if ($enable_pserver){
+			# turn on pserver writers
+			my $userlistcr=join("\n",split(",", $userlist));
+			open (WRITERS,">$cvs_dir/CVSROOT/writers");
+			print WRITERS "$userlistcr\n";
+			close WRITERS;
+			if($verbose) { print("Enable pserver for $group_name:\t$userlist in $cvs_dir/CVSROOT/writers \n"); }
+			open (CONFIG,">$cvs_dir/CVSROOT/config");
+			print CONFIG "SystemAuth=yes\n";
+			print CONFIG "LockDir=/cvsroot/cvs-locks/$group_name\n";
+			close CONFIG;
+		} else {
+			# turn off pserver writers
+			open (WRITERS,">$cvs_dir/CVSROOT/writers");
+			print WRITERS "\n";
+			close WRITERS;
+			#system("echo \"\" > $cvs_dir/CVSROOT/writers");
+			if($verbose) { print("Disable pserver for $group_name\n"); }
+			open (CONFIG,">$cvs_dir/CVSROOT/config");
+			print CONFIG "SystemAuth=no\n";
+			print CONFIG "LockDir=/cvsroot/cvs-locks/$group_name\n";
+			close CONFIG;
+		}
+
+		if ($enable_anonscm){
+			# turn on anonymous readers
+			system("echo \"anonymous\" > $cvs_dir/CVSROOT/readers");
+			#system("echo \"anonymous:\\\$1\\\$0H\\\$2/LSjjwDfsSA0gaDYY5Df/:scm_${group_name}\" > $cvs_dir/CVSROOT/passwd");
+			system("echo \"anonymous:\\\$1\\\$0H\\\$2/LSjjwDfsSA0gaDYY5Df/:anonscm-gforge\" > $cvs_dir/CVSROOT/passwd");
+			# This will give access to all users and cvsweb
+			chmod 02775, "$cvs_dir";
+
+			my $gid = $group_id + $gid_add ;
+			my $uid = $group_id + $anoncvs_uid_add ;
+			my $username = "scm_" . $group_name ;
+
+			add_or_update_anoncvs_user ($uid, $username, $gid) ;
+			
+		} else {
+			# turn off anonymous readers
+			system("echo \"\" > $cvs_dir/CVSROOT/readers");
+			system("echo \"\" > $cvs_dir/CVSROOT/passwd");
+			# This will lock all access from users not in the group and cvsweb
+			chmod 02770, "$cvs_dir";
+		}
+	}
+}
+
+#############################
+# User Add Function
+#############################
+sub add_or_update_anoncvs_user {  
+	my ($uid, $username, $gid) = @_;
+	
+	$home_dir = $homedir_prefix."/".$username;
+	
+	if ( -d $home_dir ) {
+	    chmod 0755, $home_dir;
+	} else {
+	    mkdir $home_dir, 0755;
+	}
+	
+	chown $uid, $gid, $home_dir;
+}
+
+#############################
+# Get File Owner UID
+#############################
+sub get_file_owner_uid {
+	my $filename = shift(@_);
+	my ($dev,$ino,$mode,$nlink,$uid,$gid,$rdev,$size,$atime,$mtime,$ctime,$blksize,$blocks) = stat($filename);
+	return $uid;
+}
+#############################
+# Get File Owner GID
+#############################
+sub get_file_owner_gid {
+	my $filename = shift(@_);
+	my ($dev,$ino,$mode,$nlink,$uid,$gid,$rdev,$size,$atime,$mtime,$ctime,$blksize,$blocks) = stat($filename);
+	return $gid;
+}


Property changes on: trunk/gforge_base/evolvisforge/plugins.test/scmcvs/bin/cvs_update.pl
___________________________________________________________________
Added: svn:executable
   + *

Added: trunk/gforge_base/evolvisforge/plugins.test/scmcvs/bin/db-delete.pl
===================================================================
--- trunk/gforge_base/evolvisforge/plugins.test/scmcvs/bin/db-delete.pl	                        (rev 0)
+++ trunk/gforge_base/evolvisforge/plugins.test/scmcvs/bin/db-delete.pl	2010-02-26 00:19:01 UTC (rev 4850)
@@ -0,0 +1,112 @@
+#!/usr/bin/perl -w
+#
+# $Id$
+#
+# Debian-specific script to delete plugin-specific tables
+# Roland Mas <lolando at debian.org>
+
+use strict ;
+use diagnostics ;
+
+use DBI ;
+use MIME::Base64 ;
+use HTML::Entities ;
+
+use vars qw/$dbh @reqlist $query/ ;
+use vars qw/$sys_default_domain $sys_cvs_host $sys_download_host
+    $sys_shell_host $sys_users_host $sys_docs_host $sys_lists_host
+    $sys_dns1_host $sys_dns2_host $FTPINCOMING_DIR $FTPFILES_DIR
+    $sys_urlroot $sf_cache_dir $sys_name $sys_themeroot
+    $sys_news_group $sys_dbhost $sys_dbname $sys_dbuser $sys_dbpasswd
+    $sys_ldap_base_dn $sys_ldap_host $admin_login $admin_password
+    $server_admin $domain_name $newsadmin_groupid $statsadmin_groupid
+    $skill_list/ ;
+use vars qw/$pluginname $pluginid/ ;
+
+require ("/usr/lib/gforge/lib/include.pl") ; # Include a few predefined functions 
+require ("/usr/lib/gforge/lib/sqlparser.pm") ; # Our magic SQL parser
+require ("/usr/lib/gforge/lib/sqlhelper.pm") ; # Our SQL functions
+
+&debug ("You'll see some debugging info during this installation.") ;
+&debug ("Do not worry unless told otherwise.") ;
+
+&db_connect ;
+
+# &debug ("Connected to the database OK.") ;
+
+$pluginname = "scmcvs" ;
+$pluginid = -1 ;
+
+$dbh->{AutoCommit} = 0;
+$dbh->{RaiseError} = 1;
+eval {
+    my ($sth, @array, $version, $action, $path, $target, $rname) ;
+
+    $pluginid = &get_plugin_id ($dbh, $pluginname) ;
+    &remove_plugin_from_groups ($dbh, $pluginid) ;
+    &remove_plugin_from_users ($dbh, $pluginid) ;
+
+    my $pattern = "plugin_" . $pluginname . '_%' ;
+
+    $query = "SELECT relname FROM pg_class WHERE relname LIKE '$pattern' AND relkind='v'" ;
+    $sth = $dbh->prepare ($query) ;
+    $sth->execute () ;
+    while (@array = $sth->fetchrow_array ()) {
+	$rname = $array [0] ;
+	&drop_view_if_exists ($dbh, $rname) ;
+    }
+    $sth->finish () ;
+
+    $query = "SELECT relname FROM pg_class WHERE relname LIKE '$pattern' AND relkind='r'" ;
+    $sth = $dbh->prepare ($query) ;
+    $sth->execute () ;
+    while (@array = $sth->fetchrow_array ()) {
+	$rname = $array [0] ;
+	&drop_table_if_exists ($dbh, $rname) ;
+    }
+    $sth->finish () ;
+
+    $query = "SELECT relname FROM pg_class WHERE relname LIKE '$pattern' AND relkind='i'" ;
+    $sth = $dbh->prepare ($query) ;
+    $sth->execute () ;
+    while (@array = $sth->fetchrow_array ()) {
+	$rname = $array [0] ;
+	&drop_index_if_exists ($dbh, $rname) ;
+    }
+    $sth->finish () ;
+
+    $query = "SELECT relname FROM pg_class WHERE relname LIKE '$pattern' AND relkind='S'" ;
+    $sth = $dbh->prepare ($query) ;
+    $sth->execute () ;
+    while (@array = $sth->fetchrow_array ()) {
+	$rname = $array [0] ;
+	&drop_sequence_if_exists ($dbh, $rname) ;
+    }
+    $sth->finish () ;
+
+    $dbh->commit ();
+
+
+    &debug ("It seems your database deletion went well and smoothly.  That's cool.") ;
+    &debug ("Please enjoy using Debian GForge.") ;
+
+    # There should be a commit at the end of every block above.
+    # If there is not, then it might be symptomatic of a problem.
+    # For safety, we roll back.
+    $dbh->rollback ();
+};
+
+if ($@) {
+    warn "Transaction aborted because $@" ;
+    &debug ("Transaction aborted because $@") ;
+    &debug ("Last SQL query was:\n$query\n(end of query)") ;
+    $dbh->rollback ;
+    &debug ("Please report this bug on the Debian bug-tracking system.") ;
+    &debug ("Please include the previous messages as well to help debugging.") ;
+    &debug ("You should not worry too much about this,") ;
+    &debug ("your DB is still in a consistent state and should be usable.") ;
+    exit 1 ;
+}
+
+$dbh->rollback ;
+$dbh->disconnect ;


Property changes on: trunk/gforge_base/evolvisforge/plugins.test/scmcvs/bin/db-delete.pl
___________________________________________________________________
Added: svn:executable
   + *

Added: trunk/gforge_base/evolvisforge/plugins.test/scmcvs/bin/db-upgrade.pl
===================================================================
--- trunk/gforge_base/evolvisforge/plugins.test/scmcvs/bin/db-upgrade.pl	                        (rev 0)
+++ trunk/gforge_base/evolvisforge/plugins.test/scmcvs/bin/db-upgrade.pl	2010-02-26 00:19:01 UTC (rev 4850)
@@ -0,0 +1,92 @@
+#!/usr/bin/perl -w
+#
+# $Id$
+#
+# Debian-specific script to upgrade the database between releases
+# Roland Mas <lolando at debian.org>
+
+use strict ;
+use diagnostics ;
+
+use DBI ;
+use MIME::Base64 ;
+use HTML::Entities ;
+
+use vars qw/$dbh @reqlist $query/ ;
+use vars qw/$sys_default_domain $sys_cvs_host $sys_download_host
+    $sys_shell_host $sys_users_host $sys_docs_host $sys_lists_host
+    $sys_dns1_host $sys_dns2_host $FTPINCOMING_DIR $FTPFILES_DIR
+    $sys_urlroot $sf_cache_dir $sys_name $sys_themeroot
+    $sys_news_group $sys_dbhost $sys_dbname $sys_dbuser $sys_dbpasswd
+    $sys_ldap_base_dn $sys_ldap_host $admin_login $admin_password
+    $server_admin $domain_name $newsadmin_groupid $statsadmin_groupid
+    $skill_list/ ;
+use vars qw/$pluginname/ ;
+
+require ("/usr/lib/gforge/lib/include.pl") ; # Include a few predefined functions 
+require ("/usr/lib/gforge/lib/sqlparser.pm") ; # Our magic SQL parser
+require ("/usr/lib/gforge/lib/sqlhelper.pm") ; # Our SQL functions
+
+&debug ("You'll see some debugging info during this installation.") ;
+&debug ("Do not worry unless told otherwise.") ;
+
+&db_connect ;
+
+# &debug ("Connected to the database OK.") ;
+
+$pluginname = "scmcvs" ;
+
+$dbh->{AutoCommit} = 0;
+$dbh->{RaiseError} = 1;
+eval {
+    my ($sth, @array, $version, $path, $target) ;
+
+    &create_plugin_metadata_table ($dbh, $pluginname, "0") ;
+    
+    $version = &get_plugin_db_version ($dbh, $pluginname) ;
+    $target = "0.1" ;
+    if (&is_lesser ($version, $target)) {
+#	my @filelist = ( "/usr/lib/gforge/plugins/$pluginname/db/$pluginname-init.sql" ) ;
+#	
+#	foreach my $file (@filelist) {
+#	    &debug ("Processing $file") ;
+#	    @reqlist = @{ &parse_sql_file ($file) } ;
+#	    
+#	    foreach my $s (@reqlist) {
+#		$query = $s ;
+#		# &debug ($query) ;
+#		$sth = $dbh->prepare ($query) ;
+#		$sth->execute () ;
+#		$sth->finish () ;
+#	    }
+#	}
+#	@reqlist = () ;
+	
+	&update_plugin_db_version ($dbh, $pluginname, $target) ;
+	&debug ("Committing.") ;
+	$dbh->commit () ;
+    }
+    
+    &debug ("It seems your database install/upgrade went well and smoothly.  That's cool.") ;
+    &debug ("Please enjoy using Debian GForge.") ;
+
+    # There should be a commit at the end of every block above.
+    # If there is not, then it might be symptomatic of a problem.
+    # For safety, we roll back.
+    $dbh->rollback ();
+};
+
+if ($@) {
+    warn "Transaction aborted because $@" ;
+    &debug ("Transaction aborted because $@") ;
+    &debug ("Last SQL query was:\n$query\n(end of query)") ;
+    $dbh->rollback ;
+    &debug ("Please report this bug on the Debian bug-tracking system.") ;
+    &debug ("Please include the previous messages as well to help debugging.") ;
+    &debug ("You should not worry too much about this,") ;
+    &debug ("your DB is still in a consistent state and should be usable.") ;
+    exit 1 ;
+}
+
+$dbh->rollback ;
+$dbh->disconnect ;


Property changes on: trunk/gforge_base/evolvisforge/plugins.test/scmcvs/bin/db-upgrade.pl
___________________________________________________________________
Added: svn:executable
   + *

Added: trunk/gforge_base/evolvisforge/plugins.test/scmcvs/bin/install-cvs.sh
===================================================================
--- trunk/gforge_base/evolvisforge/plugins.test/scmcvs/bin/install-cvs.sh	                        (rev 0)
+++ trunk/gforge_base/evolvisforge/plugins.test/scmcvs/bin/install-cvs.sh	2010-02-26 00:19:01 UTC (rev 4850)
@@ -0,0 +1,38 @@
+#! /bin/sh
+# 
+# $Id$
+#
+# Configure CVS for Sourceforge
+# Christian Bayle, Roland Mas, debian-sf (Sourceforge for Debian)
+
+set -e
+
+if [ $(id -u) != 0 ] ; then
+    echo "You must be root to run this, please enter passwd"
+    exec su -c "$0 $1"
+fi
+
+case "$1" in
+    configure)
+	echo "Modifying inetd for cvs server"
+	echo "CVS usual config is changed for gforge one"
+        # First, dedupe the commented lines
+	update-inetd --remove  "cvspserver	stream	tcp	nowait.400	root	/usr/sbin/tcpd	/usr/lib/gforge/bin/cvs-pserver"
+	update-inetd --remove  "cvspserver	stream	tcp	nowait.400	root	/usr/sbin/tcpd	/usr/lib/gforge/plugins/scmcvs/bin/cvs-pserver"
+	update-inetd --comment-chars "#SF_WAS_HERE#" --enable cvspserver
+        # Then, insinuate ourselves
+	update-inetd --comment-chars "#SF_WAS_HERE#" --disable cvspserver
+	update-inetd --add  "cvspserver	stream	tcp	nowait.400	root	/usr/sbin/tcpd	/usr/lib/gforge/plugins/scmcvs/bin/cvs-pserver"
+	;;
+
+    purge)
+	echo "Purging inetd for cvs server"
+	# echo "You should dpkg-reconfigure cvs to use std install"
+	update-inetd --remove  "cvspserver	stream	tcp	nowait.400	root	/usr/sbin/tcpd	/usr/lib/gforge/plugins/scmcvs/bin/cvs-pserver"
+	update-inetd --comment-chars "#SF_WAS_HERE#" --enable cvspserver
+	;;
+
+    *)
+	echo "Usage: $0 {configure|purge}"
+	exit 1
+esac


Property changes on: trunk/gforge_base/evolvisforge/plugins.test/scmcvs/bin/install-cvs.sh
___________________________________________________________________
Added: svn:executable
   + *

Added: trunk/gforge_base/evolvisforge/plugins.test/scmcvs/bin/snapshots.sh
===================================================================
--- trunk/gforge_base/evolvisforge/plugins.test/scmcvs/bin/snapshots.sh	                        (rev 0)
+++ trunk/gforge_base/evolvisforge/plugins.test/scmcvs/bin/snapshots.sh	2010-02-26 00:19:01 UTC (rev 4850)
@@ -0,0 +1,53 @@
+#! /bin/sh
+# 
+# Generate CVS repositories snapshots.
+# Suppose that the repository can be checkout using '.' as module.
+# Users may prevent this for their projects using the CVSROOT/modules
+# file.
+
+set -e
+#set -x
+
+if [  $(id -u) != 0 ] ; then
+    echo "You must be root to run this, please enter passwd"
+    exec su -c "$0 $1"
+fi
+
+CVSROOT=/var/lib/gforge/chroot/cvsroot
+SCMSNAPSHOTSDIR=/var/lib/gforge/scmsnapshots
+TMPDIR=/tmp
+
+case "$1" in
+    generate)
+        # Create temporary dir
+        work_dir=$TMPDIR/gforge-plugin-scmcvs.$$
+        trap "rm -rf $work_dir" ERR EXIT
+        today=`date +%Y-%m-%d`
+
+	cd $CVSROOT
+        ls | while read dir ; do
+	    if [ "$dir" != "cvs-locks" ]; then
+                # Make tgz archive
+		mkdir -p $work_dir/$dir-scm-$today
+		cd $work_dir/$dir-scm-$today
+		if cvs -f -Q -d :local:$CVSROOT/$dir co -P .; then
+		    cd $work_dir
+		    tar czf $dir-scm-latest.tar.gz $dir-scm-$today
+		    mv $dir-scm-latest.tar.gz $SCMSNAPSHOTSDIR
+		    rm -fr $dir-scm-$today
+		fi
+	    fi
+        done
+	;;
+
+    update)
+	;;
+
+    purge)
+	;;
+
+    *)
+	echo "Usage: $0 {generate}"
+	exit 1
+	;;
+esac

Added: trunk/gforge_base/evolvisforge/plugins.test/scmcvs/bin/stats_cvs.pl
===================================================================
--- trunk/gforge_base/evolvisforge/plugins.test/scmcvs/bin/stats_cvs.pl	                        (rev 0)
+++ trunk/gforge_base/evolvisforge/plugins.test/scmcvs/bin/stats_cvs.pl	2010-02-26 00:19:01 UTC (rev 4850)
@@ -0,0 +1,226 @@
+#!/usr/bin/perl
+#/**
+#  *
+#  * stats_cvs.pl - NIGHTLY SCRIPT
+#  *
+#  * Recurses through the /cvsroot directory tree and parses each projects
+#  * '~/CVSROOT/history' file, and create and fill the sql table with 
+#  * modified, and added to each project.
+#  *
+#  * @version   $Id$
+#  *
+#  */
+
+# For the files
+#use strict;
+use Time::Local;
+use POSIX qw( strftime );
+
+# For the database
+use DBI;
+require("/usr/lib/gforge/lib/include.pl");
+my $cvsroot = "/var/lib/gforge/chroot/cvsroot";
+my $verbose = 1;
+$|=0 if $verbose;
+$|++;
+
+sub drop_tables {
+    db_drop_table_if_exists ("deb_cvs_dump") ;
+    db_drop_table_if_exists ("deb_cvs_group") ;
+    db_drop_table_if_exists ("deb_cvs_group_user") ;
+}
+
+sub create_dump_table {
+	my ($sql);
+	$sql = "CREATE TABLE deb_cvs_dump (
+		type char(1),
+		year integer NOT NULL,
+		month integer NOT NULL,
+		day integer NOT NULL,
+		time integer NOT NULL,
+		cvsuser text,
+		cvsgroup text
+	)";
+	$dbh->do( $sql );
+}
+
+sub dump_history {
+	my ($year, $month, $day, $day_begin, $day_end);
+	
+	print "Running tree at $cvsroot/\n";
+	
+	chdir( "$cvsroot" ) || die("Unable to make $cvsroot the working directory.\n");
+	
+	foreach $group ( glob("*") ) {
+		next if ( ! -d "$group" );
+		my ($cvs_co, $cvs_commit, $cvs_add, %usr_commit, %usr_add );
+		print "Parsing $group/\n";
+	
+		open(HISTORY, "< $cvsroot/$group/CVSROOT/history") or print "E::Unable to open history for $group\n";
+		while ( <HISTORY> ) {
+			my ($time_parsed, $type, $cvstime, $user, $curdir, $module, $rev, $file );
+	 
+			## Split the cvs history entry into it's 6 fields.
+			($cvstime,$user,$curdir,$module,$rev,$file) = split(/\|/, $_, 6 );
+	
+			## log modified  $type eq "M" 
+			## log added  $type eq "A"
+			## log others  $type neq "A"  neq "M"
+			$type = substr($cvstime, 0, 1);
+			$time_parsed = hex( substr($cvstime, 1, 8) );
+			$year	= strftime("%Y", gmtime( $time_parsed ) );
+			$month	= strftime("%m", gmtime( $time_parsed ) );
+			$day	= strftime("%d", gmtime( $time_parsed ) );
+			$sql = "INSERT INTO deb_cvs_dump 
+			(type,year,month,day,time,cvsuser,cvsgroup)
+			VALUES ('$type','$year','$month','$day','$time_parsed','$user','$group')";
+			
+			#print "$sql";
+			$dbh->do( $sql );
+		}
+		close( HISTORY );
+	}
+}
+
+sub parse_history {
+	my ($sql);
+# CVS doc says the meaning of the code letters.
+#
+#Letter          Meaning
+#======          =========================================================
+#O               Checkout
+#T               Tag
+#F               Release
+#W               Update (no user file, remove from entries file)
+#U               Update (file overwrote unmodified user file)
+#G               Update (file was merged successfully into modified user file)
+#C               Update (file was merged, but conflicts w/ modified user file)
+#M               Commit (from modified file)
+#A               Commit (an added file)
+#R               Commit (the removal of a file)
+#E               Export
+	$sql = "
+	CREATE TABLE deb_cvs_group_user AS
+        	SELECT agg.cvsgroup,agg.cvsuser,agg.year,agg.month,agg.day,agg.total AS total,m.modified AS modified,a.added AS added,o.others AS others
+        	FROM (
+        		SELECT cvsgroup,cvsuser,year,month,day,COUNT(*) AS total
+        		FROM deb_cvs_dump
+        		GROUP BY year,month,day,cvsgroup,cvsuser
+		) agg
+		LEFT JOIN (
+        	SELECT cvsgroup,cvsuser,year,month,day,COUNT(*) AS modified
+        	FROM deb_cvs_dump
+		WHERE type='M'
+        	GROUP BY year,month,day,cvsgroup,cvsuser
+		) m USING (cvsgroup,cvsuser,year,month,day)
+		LEFT JOIN (
+        	SELECT cvsgroup,cvsuser,year,month,day,COUNT(*) AS added
+        	FROM deb_cvs_dump
+		WHERE type='A'
+        	GROUP BY year,month,day,cvsgroup,cvsuser
+		) a USING (cvsgroup,cvsuser,year,month,day)
+		LEFT JOIN (
+        	SELECT cvsgroup,cvsuser,year,month,day,COUNT(*) AS others
+        	FROM deb_cvs_dump
+		WHERE type!='A' and type!='M' 
+        	GROUP BY year,month,day,cvsgroup,cvsuser
+		) o USING (cvsgroup,cvsuser,year,month,day)
+	";
+	$dbh->do( $sql );
+}
+
+sub print_stats {
+	my ($sql,$res,$temp);
+	$sql = "SELECT * FROM deb_cvs_group_user order by year, month, day";
+	$res = $dbh->prepare($sql);
+	$res->execute();
+	while ( my ($cvsgroup, $cvsuser, $year, $month, $day, $total, $modified, $added, $others) = $res->fetchrow()) {
+		print "$cvsgroup $cvsuser $year $month $day $total=$modified+$added+$others\n";
+	}
+	print "-----------------------------------------------------\n";
+	print "cvsgroup\tcvsuser\tmodified\tadded\tothers\n";
+	print "-----------------------------------------------------\n";
+	$sql = "SELECT cvsgroup, cvsuser, SUM(modified), SUM(added), SUM(others) FROM deb_cvs_group_user group by cvsgroup,cvsuser";
+	$res = $dbh->prepare($sql);
+	$res->execute();
+	while ( my ($cvsgroup, $cvsuser, $modified, $added, $others) = $res->fetchrow()) {
+		print "$cvsgroup\t$cvsuser\t$modified\t$added\t$others\n";
+	}
+	print "-----------------------------------------------------\n";
+}
+
+sub cvs_stats_merge {
+        print "-----------------------------------------------------\n";
+        print "Inserting cvs data into\n";
+        print "-----------------------------------------------------\n";
+	my ($sql,$res,$temp);
+	$sql = "DELETE FROM stats_cvs_group 
+		WHERE (month,day,group_id) IN (
+			SELECT d.month+ d.year*100,
+	 			d.day,g.group_id 
+			FROM deb_cvs_group_user AS d,	groups AS g
+			WHERE d.cvsgroup=g.unix_group_name 
+			GROUP BY d.month,d.year,d.day,g.group_id 
+		)";
+	$dbh->do ( $sql );
+	$sql = "INSERT INTO stats_cvs_group 
+		SELECT d.month + d.year * 100,
+			d.day,g.group_id, 
+			sum(coalesce(d.others,0)),
+			sum(coalesce(d.modified,0)),
+			sum(COALESCE(d.added,0)) 
+		FROM deb_cvs_group_user AS d,groups AS g
+		WHERE d.cvsgroup=g.unix_group_name 
+			and (d.month + d.year * 100,
+			d.day,
+			g.group_id) NOT IN (
+				SELECT month,day,group_id FROM stats_cvs_group 
+				)
+		GROUP BY year,month,day,group_id
+		";
+	$dbh->do ( $sql );
+	
+	$sql = "DELETE FROM stats_cvs_user 
+		WHERE (month,day,group_id,user_id) IN (
+			SELECT d.month+ d.year*100,
+	 			d.day,g.group_id,u.user_id
+			FROM deb_cvs_group_user AS d, groups AS g, users as u
+			WHERE d.cvsgroup=g.unix_group_name AND d.cvsuser=u.user_name 
+			GROUP BY d.month,d.year,d.day,g.group_id,u.user_id 
+		)";
+	$dbh->do ( $sql );
+	$sql = "INSERT INTO stats_cvs_user
+		SELECT d.month + d.year * 100,
+			d.day,
+			g.group_id, 
+			u.user_id,
+			sum(coalesce(d.others,0)),
+			sum(coalesce(d.modified,0)),
+			sum(COALESCE(d.added,0)) 
+		FROM deb_cvs_group_user AS d,groups AS g, users AS u
+		WHERE d.cvsgroup=g.unix_group_name and
+			d.cvsuser=u.user_name
+			and (d.month + d.year * 100,
+			d.day,
+			g.group_id,
+			u.user_id) NOT IN (
+				SELECT month,day,group_id,user_id FROM stats_cvs_user
+				)
+		GROUP BY year,month,day,group_id,user_id
+		";
+	$dbh->do ( $sql );
+	
+	print "  [ x ] Done\n";
+}
+#############
+# main      #
+#############
+&db_connect;
+&drop_tables;
+&create_dump_table;
+&dump_history;
+&parse_history;
+&print_stats;
+&cvs_stats_merge;
+&drop_tables;
+


Property changes on: trunk/gforge_base/evolvisforge/plugins.test/scmcvs/bin/stats_cvs.pl
___________________________________________________________________
Added: svn:executable
   + *

Added: trunk/gforge_base/evolvisforge/plugins.test/scmcvs/bin/syncmail
===================================================================
--- trunk/gforge_base/evolvisforge/plugins.test/scmcvs/bin/syncmail	                        (rev 0)
+++ trunk/gforge_base/evolvisforge/plugins.test/scmcvs/bin/syncmail	2010-02-26 00:19:01 UTC (rev 4850)
@@ -0,0 +1,328 @@
+#! /usr/bin/python
+
+# NOTE: Until SourceForge installs a modern version of Python on the cvs
+# servers, this script MUST be compatible with Python 1.5.2.
+
+"""Complicated notification for CVS checkins.
+
+This script is used to provide email notifications of changes to the CVS
+repository.  These email changes will include context diffs of the changes.
+Really big diffs will be trimmed.
+
+This script is run from a CVS loginfo file (see $CVSROOT/CVSROOT/loginfo).  To
+set this up, create a loginfo entry that looks something like this:
+
+    mymodule /path/to/this/script %%s some-email-addr at your.domain
+
+In this example, whenever a checkin that matches `mymodule' is made, this
+script is invoked, which will generate the diff containing email, and send it
+to some-email-addr at your.domain.
+
+    Note: This module used to also do repository synchronizations via
+    rsync-over-ssh, but since the repository has been moved to SourceForge,
+    this is no longer necessary.  The syncing functionality has been ripped
+    out in the 3.0, which simplifies it considerably.  Access the 2.x versions
+    to refer to this functionality.  Because of this, the script is misnamed.
+
+It no longer makes sense to run this script from the command line.  Doing so
+will only print out this usage information.
+
+Usage:
+
+    %(PROGRAM)s [options] <%%S> email-addr [email-addr ...]
+
+Where options are:
+
+    --cvsroot=<path>
+    	Use <path> as the environment variable CVSROOT.  Otherwise this
+    	variable must exist in the environment.
+
+    --context=#
+    -C #
+        Include # lines of context around lines that differ (default: 2).
+
+    -c
+        Produce a context diff (default).
+
+    -u
+        Produce a unified diff (smaller).
+
+    --quiet / -q
+        Don't print as much status to stdout.
+
+    --fromhost=hostname
+    -f hostname
+        The hostname that email messages appear to be coming from.  The From:
+        header will of the outgoing message will look like user at hostname.  By
+        default, hostname is the machine's fully qualified domain name.
+
+    --help / -h
+        Print this text.
+
+The rest of the command line arguments are:
+
+    <%%S>
+        CVS %%s loginfo expansion.  When invoked by CVS, this will be a single
+        string containing the directory the checkin is being made in, relative
+        to $CVSROOT, followed by the list of files that are changing.  If the
+        %%s in the loginfo file is %%{sVv}, context diffs for each of the
+        modified files are included in any email messages that are generated.
+
+    email-addrs
+        At least one email address.
+"""
+import os
+import sys
+import re
+import time
+import string
+import getopt
+import smtplib
+import pwd
+import socket
+
+try:
+    from socket import getfqdn
+except ImportError:
+    def getfqdn():
+        # Python 1.5.2 :(
+        hostname = socket.gethostname()
+        byaddr = socket.gethostbyaddr(socket.gethostbyname(hostname))
+        aliases = byaddr[1]
+        aliases.insert(0, byaddr[0])
+        aliases.insert(0, hostname)
+        for fqdn in aliases:
+            if '.' in fqdn:
+                break
+        else:
+            fqdn = 'localhost.localdomain'
+        return fqdn
+    
+
+from cStringIO import StringIO
+
+# Which SMTP server to do we connect to?  Empty string means localhost.
+MAILHOST = 'localhost'
+MAILPORT = 25
+ 
+# Diff trimming stuff
+DIFF_HEAD_LINES = 20
+DIFF_TAIL_LINES = 20
+DIFF_TRUNCATE_IF_LARGER = 1000
+
+EMPTYSTRING = ''
+SPACE = ' '
+DOT = '.'
+COMMASPACE = ', '
+
+PROGRAM = sys.argv[0]
+
+BINARY_EXPLANATION_LINES = [
+    "(This appears to be a binary file; contents omitted.)\n"
+    ]
+
+REVCRE = re.compile("^(NONE|[0-9.]+)$")
+NOVERSION = "Couldn't generate diff; no version number found in filespec: %s"
+BACKSLASH = "Couldn't generate diff: backslash in filespec's filename: %s"
+
+
+
+def usage(code, msg=''):
+    print __doc__ % globals()
+    if msg:
+        print msg
+    sys.exit(code)
+
+
+
+def calculate_diff(filespec, contextlines):
+    file, oldrev, newrev = string.split(filespec, ',')
+    # Make sure we can find a CVS version number
+    if not REVCRE.match(oldrev):
+        return NOVERSION % filespec
+    if not REVCRE.match(newrev):
+        return NOVERSION % filespec
+
+    if string.find(file, '\\') <> -1:
+        # I'm sorry, a file name that contains a backslash is just too much.
+        # XXX if someone wants to figure out how to escape the backslashes in
+        # a safe way to allow filenames containing backslashes, this is the
+        # place to do it.  --Zooko 2002-03-17
+        return BACKSLASH % filespec
+
+    if string.find(file, "'") <> -1:
+        # Those crazy users put single-quotes in their file names!  Now we
+        # have to escape everything that is meaningful inside double-quotes.
+        filestr = string.replace(file, '`', '\`')
+        filestr = string.replace(filestr, '"', '\"')
+        filestr = string.replace(filestr, '$', '\$')
+        # and quote it with double-quotes.
+        filestr = '"' + filestr + '"'
+    else:
+        # quote it with single-quotes.
+        filestr = "'" + file + "'"
+    if oldrev == 'NONE':
+        try:
+            if os.path.exists(file):
+                fp = open(file)
+            else:
+                update_cmd = "cvs -fn update -r %s -p %s" % (newrev, filestr)
+                fp = os.popen(update_cmd)
+            lines = fp.readlines()
+            fp.close()
+            # Is this a binary file?  Let's look at the first few
+            # lines to figure it out:
+            for line in lines[:5]:
+                for c in string.rstrip(line):
+                    if c in string.whitespace:
+                        continue
+                    if c < ' ' or c > chr(127):
+                        lines = BINARY_EXPLANATION_LINES[:]
+                        break
+            lines.insert(0, '--- NEW FILE: %s ---\n' % file)
+        except IOError, e:
+            lines = ['***** Error reading new file: ',
+                     str(e), '\n***** file: ', file, ' cwd: ', os.getcwd()]
+    elif newrev == 'NONE':
+        lines = ['--- %s DELETED ---\n' % file]
+    else:
+        # This /has/ to happen in the background, otherwise we'll run into CVS
+        # lock contention.  What a crock.
+        if contextlines > 0:
+            difftype = "-C " + str(contextlines)
+        else:
+            difftype = "-u"
+        diffcmd = "/usr/bin/cvs -f diff -kk %s --minimal -r %s -r %s %s" \
+                  % (difftype, oldrev, newrev, filestr)
+        fp = os.popen(diffcmd)
+        lines = fp.readlines()
+        sts = fp.close()
+        # ignore the error code, it always seems to be 1 :(
+##        if sts:
+##            return 'Error code %d occurred during diff\n' % (sts >> 8)
+    if len(lines) > DIFF_TRUNCATE_IF_LARGER:
+        removedlines = len(lines) - DIFF_HEAD_LINES - DIFF_TAIL_LINES
+        del lines[DIFF_HEAD_LINES:-DIFF_TAIL_LINES]
+        lines.insert(DIFF_HEAD_LINES,
+                     '[...%d lines suppressed...]\n' % removedlines)
+    return string.join(lines, '')
+
+
+
+def blast_mail(subject, people, filestodiff, contextlines, fromhost):
+    # cannot wait for child process or that will cause parent to retain cvs
+    # lock for too long.  Urg!
+    if not os.fork():
+        # in the child
+        # give up the lock you cvs thang!
+        time.sleep(2)
+        # Create the smtp connection to the localhost
+        conn = smtplib.SMTP()
+        conn.connect(MAILHOST, MAILPORT)
+        user = pwd.getpwuid(os.getuid())[0]
+        domain = fromhost or getfqdn()
+        author = '%s@%s' % (user, domain)
+        s = StringIO()
+        sys.stdout = s
+        try:
+            print '''\
+From: %(author)s
+To: %(people)s
+Subject: %(subject)s
+''' % {'author' : author,
+       'people' : string.join(people, COMMASPACE),
+       'subject': subject,
+       }
+            s.write(sys.stdin.read())
+            # append the diffs if available
+            print
+            for file in filestodiff:
+                print calculate_diff(file, contextlines)
+        finally:
+            sys.stdout = sys.__stdout__
+        resp = conn.sendmail(author, people, s.getvalue())
+        conn.close()
+        os._exit(0)
+
+
+
+# scan args for options
+def main():
+    try:
+        opts, args = getopt.getopt(
+            sys.argv[1:], 'hC:cuqf:',
+            ['fromhost=', 'context=', 'cvsroot=', 'help', 'quiet'])
+    except getopt.error, msg:
+        usage(1, msg)
+
+    # parse the options
+    contextlines = 2
+    verbose = 1
+    fromhost = None
+    for opt, arg in opts:
+        if opt in ('-h', '--help'):
+            usage(0)
+        elif opt == '--cvsroot':
+            os.environ['CVSROOT'] = arg
+        elif opt in ('-C', '--context'):
+            contextlines = int(arg)
+        elif opt == '-c':
+            if contextlines <= 0:
+                contextlines = 2
+        elif opt == '-u':
+            contextlines = 0
+        elif opt in ('-q', '--quiet'):
+            verbose = 0
+        elif opt in ('-f', '--fromhost'):
+            fromhost = arg
+
+    # What follows is the specification containing the files that were
+    # modified.  The argument actually must be split, with the first component
+    # containing the directory the checkin is being made in, relative to
+    # $CVSROOT, followed by the list of files that are changing.
+    if not args:
+        usage(1, 'No CVS module specified')
+    subject = args[0]
+    fileargs = args[1:-1]
+    specs = []
+    specs.append(subject)
+    while len(fileargs) > 0:
+         specs.append(string.join(fileargs[:3], ','))
+         fileargs = fileargs[3:]
+
+    if not args[-1]:
+	usage(1, 'No recipients specified')
+    people = []
+    people.append(args[-1])
+
+    # The remaining args should be the email addresses
+    # Now do the mail command
+
+    if verbose:
+        print 'Mailing %s...' % string.join(people, COMMASPACE)
+
+    if specs == ['-', 'Imported', 'sources']:
+        return
+    if specs[-3:] == ['-', 'New', 'directory']:
+        del specs[-3:]
+    elif len(specs) > 2:
+        L = specs[:2]
+        for s in specs[2:]:
+            prev = L[-1]
+            if string.count(prev, ',') < 2:
+                L[-1] = "%s %s" % (prev, s)
+            else:
+                L.append(s)
+        specs = L
+
+    if verbose:
+        print 'Generating notification message...'
+    blast_mail(subject, people, specs[1:], contextlines, fromhost)
+    if verbose:
+        print 'Generating notification message... done.'
+
+
+
+if __name__ == '__main__':
+    main()
+    sys.exit(0)


Property changes on: trunk/gforge_base/evolvisforge/plugins.test/scmcvs/bin/syncmail
___________________________________________________________________
Added: svn:executable
   + *

Added: trunk/gforge_base/evolvisforge/plugins.test/scmcvs/bin/syncmail-cvs-1.11
===================================================================
--- trunk/gforge_base/evolvisforge/plugins.test/scmcvs/bin/syncmail-cvs-1.11	                        (rev 0)
+++ trunk/gforge_base/evolvisforge/plugins.test/scmcvs/bin/syncmail-cvs-1.11	2010-02-26 00:19:01 UTC (rev 4850)
@@ -0,0 +1,324 @@
+#! /usr/bin/python
+
+# NOTE: Until SourceForge installs a modern version of Python on the cvs
+# servers, this script MUST be compatible with Python 1.5.2.
+
+"""Complicated notification for CVS checkins.
+
+This script is used to provide email notifications of changes to the CVS
+repository.  These email changes will include context diffs of the changes.
+Really big diffs will be trimmed.
+
+This script is run from a CVS loginfo file (see $CVSROOT/CVSROOT/loginfo).  To
+set this up, create a loginfo entry that looks something like this:
+
+    mymodule /path/to/this/script %%s some-email-addr at your.domain
+
+In this example, whenever a checkin that matches `mymodule' is made, this
+script is invoked, which will generate the diff containing email, and send it
+to some-email-addr at your.domain.
+
+    Note: This module used to also do repository synchronizations via
+    rsync-over-ssh, but since the repository has been moved to SourceForge,
+    this is no longer necessary.  The syncing functionality has been ripped
+    out in the 3.0, which simplifies it considerably.  Access the 2.x versions
+    to refer to this functionality.  Because of this, the script is misnamed.
+
+It no longer makes sense to run this script from the command line.  Doing so
+will only print out this usage information.
+
+Usage:
+
+    %(PROGRAM)s [options] <%%S> email-addr [email-addr ...]
+
+Where options are:
+
+    --cvsroot=<path>
+    	Use <path> as the environment variable CVSROOT.  Otherwise this
+    	variable must exist in the environment.
+
+    --context=#
+    -C #
+        Include # lines of context around lines that differ (default: 2).
+
+    -c
+        Produce a context diff (default).
+
+    -u
+        Produce a unified diff (smaller).
+
+    --quiet / -q
+        Don't print as much status to stdout.
+
+    --fromhost=hostname
+    -f hostname
+        The hostname that email messages appear to be coming from.  The From:
+        header will of the outgoing message will look like user at hostname.  By
+        default, hostname is the machine's fully qualified domain name.
+
+    --help / -h
+        Print this text.
+
+The rest of the command line arguments are:
+
+    <%%S>
+        CVS %%s loginfo expansion.  When invoked by CVS, this will be a single
+        string containing the directory the checkin is being made in, relative
+        to $CVSROOT, followed by the list of files that are changing.  If the
+        %%s in the loginfo file is %%{sVv}, context diffs for each of the
+        modified files are included in any email messages that are generated.
+
+    email-addrs
+        At least one email address.
+"""
+import os
+import sys
+import re
+import time
+import string
+import getopt
+import smtplib
+import pwd
+import socket
+
+try:
+    from socket import getfqdn
+except ImportError:
+    def getfqdn():
+        # Python 1.5.2 :(
+        hostname = socket.gethostname()
+        byaddr = socket.gethostbyaddr(socket.gethostbyname(hostname))
+        aliases = byaddr[1]
+        aliases.insert(0, byaddr[0])
+        aliases.insert(0, hostname)
+        for fqdn in aliases:
+            if '.' in fqdn:
+                break
+        else:
+            fqdn = 'localhost.localdomain'
+        return fqdn
+    
+
+from cStringIO import StringIO
+
+# Which SMTP server to do we connect to?  Empty string means localhost.
+MAILHOST = 'localhost'
+MAILPORT = 25
+ 
+# Diff trimming stuff
+DIFF_HEAD_LINES = 20
+DIFF_TAIL_LINES = 20
+DIFF_TRUNCATE_IF_LARGER = 1000
+
+EMPTYSTRING = ''
+SPACE = ' '
+DOT = '.'
+COMMASPACE = ', '
+
+PROGRAM = sys.argv[0]
+
+BINARY_EXPLANATION_LINES = [
+    "(This appears to be a binary file; contents omitted.)\n"
+    ]
+
+REVCRE = re.compile("^(NONE|[0-9.]+)$")
+NOVERSION = "Couldn't generate diff; no version number found in filespec: %s"
+BACKSLASH = "Couldn't generate diff: backslash in filespec's filename: %s"
+
+
+
+def usage(code, msg=''):
+    print __doc__ % globals()
+    if msg:
+        print msg
+    sys.exit(code)
+
+
+
+def calculate_diff(filespec, contextlines):
+    file, oldrev, newrev = string.split(filespec, ',')
+    # Make sure we can find a CVS version number
+    if not REVCRE.match(oldrev):
+        return NOVERSION % filespec
+    if not REVCRE.match(newrev):
+        return NOVERSION % filespec
+
+    if string.find(file, '\\') <> -1:
+        # I'm sorry, a file name that contains a backslash is just too much.
+        # XXX if someone wants to figure out how to escape the backslashes in
+        # a safe way to allow filenames containing backslashes, this is the
+        # place to do it.  --Zooko 2002-03-17
+        return BACKSLASH % filespec
+
+    if string.find(file, "'") <> -1:
+        # Those crazy users put single-quotes in their file names!  Now we
+        # have to escape everything that is meaningful inside double-quotes.
+        filestr = string.replace(file, '`', '\`')
+        filestr = string.replace(filestr, '"', '\"')
+        filestr = string.replace(filestr, '$', '\$')
+        # and quote it with double-quotes.
+        filestr = '"' + filestr + '"'
+    else:
+        # quote it with single-quotes.
+        filestr = "'" + file + "'"
+    if oldrev == 'NONE':
+        try:
+            if os.path.exists(file):
+                fp = open(file)
+            else:
+                update_cmd = "cvs -fn update -r %s -p %s" % (newrev, filestr)
+                fp = os.popen(update_cmd)
+            lines = fp.readlines()
+            fp.close()
+            # Is this a binary file?  Let's look at the first few
+            # lines to figure it out:
+            for line in lines[:5]:
+                for c in string.rstrip(line):
+                    if c in string.whitespace:
+                        continue
+                    if c < ' ' or c > chr(127):
+                        lines = BINARY_EXPLANATION_LINES[:]
+                        break
+            lines.insert(0, '--- NEW FILE: %s ---\n' % file)
+        except IOError, e:
+            lines = ['***** Error reading new file: ',
+                     str(e), '\n***** file: ', file, ' cwd: ', os.getcwd()]
+    elif newrev == 'NONE':
+        lines = ['--- %s DELETED ---\n' % file]
+    else:
+        # This /has/ to happen in the background, otherwise we'll run into CVS
+        # lock contention.  What a crock.
+        if contextlines > 0:
+            difftype = "-C " + str(contextlines)
+        else:
+            difftype = "-u"
+        diffcmd = "/usr/bin/cvs -f diff -kk %s --minimal -r %s -r %s %s" \
+                  % (difftype, oldrev, newrev, filestr)
+        fp = os.popen(diffcmd)
+        lines = fp.readlines()
+        sts = fp.close()
+        # ignore the error code, it always seems to be 1 :(
+##        if sts:
+##            return 'Error code %d occurred during diff\n' % (sts >> 8)
+    if len(lines) > DIFF_TRUNCATE_IF_LARGER:
+        removedlines = len(lines) - DIFF_HEAD_LINES - DIFF_TAIL_LINES
+        del lines[DIFF_HEAD_LINES:-DIFF_TAIL_LINES]
+        lines.insert(DIFF_HEAD_LINES,
+                     '[...%d lines suppressed...]\n' % removedlines)
+    return string.join(lines, '')
+
+
+
+def blast_mail(subject, people, filestodiff, contextlines, fromhost):
+    # cannot wait for child process or that will cause parent to retain cvs
+    # lock for too long.  Urg!
+    if not os.fork():
+        # in the child
+        # give up the lock you cvs thang!
+        time.sleep(2)
+        # Create the smtp connection to the localhost
+        conn = smtplib.SMTP()
+        conn.connect(MAILHOST, MAILPORT)
+        user = pwd.getpwuid(os.getuid())[0]
+        domain = fromhost or getfqdn()
+        author = '%s@%s' % (user, domain)
+        s = StringIO()
+        sys.stdout = s
+        try:
+            print '''\
+From: %(author)s
+To: %(people)s
+Subject: %(subject)s
+''' % {'author' : author,
+       'people' : string.join(people, COMMASPACE),
+       'subject': subject,
+       }
+            s.write(sys.stdin.read())
+            # append the diffs if available
+            print
+            for file in filestodiff:
+                print calculate_diff(file, contextlines)
+        finally:
+            sys.stdout = sys.__stdout__
+        resp = conn.sendmail(author, people, s.getvalue())
+        conn.close()
+        os._exit(0)
+
+
+
+# scan args for options
+def main():
+    try:
+        opts, args = getopt.getopt(
+            sys.argv[1:], 'hC:cuqf:',
+            ['fromhost=', 'context=', 'cvsroot=', 'help', 'quiet'])
+    except getopt.error, msg:
+        usage(1, msg)
+
+    # parse the options
+    contextlines = 2
+    verbose = 1
+    fromhost = None
+    for opt, arg in opts:
+        if opt in ('-h', '--help'):
+            usage(0)
+        elif opt == '--cvsroot':
+            os.environ['CVSROOT'] = arg
+        elif opt in ('-C', '--context'):
+            contextlines = int(arg)
+        elif opt == '-c':
+            if contextlines <= 0:
+                contextlines = 2
+        elif opt == '-u':
+            contextlines = 0
+        elif opt in ('-q', '--quiet'):
+            verbose = 0
+        elif opt in ('-f', '--fromhost'):
+            fromhost = arg
+
+    # What follows is the specification containing the files that were
+    # modified.  The argument actually must be split, with the first component
+    # containing the directory the checkin is being made in, relative to
+    # $CVSROOT, followed by the list of files that are changing.
+    if not args:
+        usage(1, 'No CVS module specified')
+    subject = args[0]
+    specs = string.split(args[0])
+    del args[0]
+
+    # The remaining args should be the email addresses
+    if not args:
+        usage(1, 'No recipients specified')
+
+    # Now do the mail command
+    people = args
+
+    if verbose:
+        print 'Mailing %s...' % string.join(people, COMMASPACE)
+
+    if specs == ['-', 'Imported', 'sources']:
+        return
+    if specs[-3:] == ['-', 'New', 'directory']:
+        del specs[-3:]
+    elif len(specs) > 2:
+        L = specs[:2]
+        for s in specs[2:]:
+            prev = L[-1]
+            if string.count(prev, ',') < 2:
+                L[-1] = "%s %s" % (prev, s)
+            else:
+                L.append(s)
+        specs = L
+
+    if verbose:
+        print 'Generating notification message...'
+    blast_mail(subject, people, specs[1:], contextlines, fromhost)
+    if verbose:
+        print 'Generating notification message... done.'
+
+
+
+if __name__ == '__main__':
+    main()
+    sys.exit(0)
+


Property changes on: trunk/gforge_base/evolvisforge/plugins.test/scmcvs/bin/syncmail-cvs-1.11
___________________________________________________________________
Added: svn:executable
   + *

Added: trunk/gforge_base/evolvisforge/plugins.test/scmcvs/bin/syncmail-cvs-1.12
===================================================================
--- trunk/gforge_base/evolvisforge/plugins.test/scmcvs/bin/syncmail-cvs-1.12	                        (rev 0)
+++ trunk/gforge_base/evolvisforge/plugins.test/scmcvs/bin/syncmail-cvs-1.12	2010-02-26 00:19:01 UTC (rev 4850)
@@ -0,0 +1,328 @@
+#! /usr/bin/python
+
+# NOTE: Until SourceForge installs a modern version of Python on the cvs
+# servers, this script MUST be compatible with Python 1.5.2.
+
+"""Complicated notification for CVS checkins.
+
+This script is used to provide email notifications of changes to the CVS
+repository.  These email changes will include context diffs of the changes.
+Really big diffs will be trimmed.
+
+This script is run from a CVS loginfo file (see $CVSROOT/CVSROOT/loginfo).  To
+set this up, create a loginfo entry that looks something like this:
+
+    mymodule /path/to/this/script %%s some-email-addr at your.domain
+
+In this example, whenever a checkin that matches `mymodule' is made, this
+script is invoked, which will generate the diff containing email, and send it
+to some-email-addr at your.domain.
+
+    Note: This module used to also do repository synchronizations via
+    rsync-over-ssh, but since the repository has been moved to SourceForge,
+    this is no longer necessary.  The syncing functionality has been ripped
+    out in the 3.0, which simplifies it considerably.  Access the 2.x versions
+    to refer to this functionality.  Because of this, the script is misnamed.
+
+It no longer makes sense to run this script from the command line.  Doing so
+will only print out this usage information.
+
+Usage:
+
+    %(PROGRAM)s [options] <%%S> email-addr [email-addr ...]
+
+Where options are:
+
+    --cvsroot=<path>
+    	Use <path> as the environment variable CVSROOT.  Otherwise this
+    	variable must exist in the environment.
+
+    --context=#
+    -C #
+        Include # lines of context around lines that differ (default: 2).
+
+    -c
+        Produce a context diff (default).
+
+    -u
+        Produce a unified diff (smaller).
+
+    --quiet / -q
+        Don't print as much status to stdout.
+
+    --fromhost=hostname
+    -f hostname
+        The hostname that email messages appear to be coming from.  The From:
+        header will of the outgoing message will look like user at hostname.  By
+        default, hostname is the machine's fully qualified domain name.
+
+    --help / -h
+        Print this text.
+
+The rest of the command line arguments are:
+
+    <%%S>
+        CVS %%s loginfo expansion.  When invoked by CVS, this will be a single
+        string containing the directory the checkin is being made in, relative
+        to $CVSROOT, followed by the list of files that are changing.  If the
+        %%s in the loginfo file is %%{sVv}, context diffs for each of the
+        modified files are included in any email messages that are generated.
+
+    email-addrs
+        At least one email address.
+"""
+import os
+import sys
+import re
+import time
+import string
+import getopt
+import smtplib
+import pwd
+import socket
+
+try:
+    from socket import getfqdn
+except ImportError:
+    def getfqdn():
+        # Python 1.5.2 :(
+        hostname = socket.gethostname()
+        byaddr = socket.gethostbyaddr(socket.gethostbyname(hostname))
+        aliases = byaddr[1]
+        aliases.insert(0, byaddr[0])
+        aliases.insert(0, hostname)
+        for fqdn in aliases:
+            if '.' in fqdn:
+                break
+        else:
+            fqdn = 'localhost.localdomain'
+        return fqdn
+    
+
+from cStringIO import StringIO
+
+# Which SMTP server to do we connect to?  Empty string means localhost.
+MAILHOST = 'localhost'
+MAILPORT = 25
+ 
+# Diff trimming stuff
+DIFF_HEAD_LINES = 20
+DIFF_TAIL_LINES = 20
+DIFF_TRUNCATE_IF_LARGER = 1000
+
+EMPTYSTRING = ''
+SPACE = ' '
+DOT = '.'
+COMMASPACE = ', '
+
+PROGRAM = sys.argv[0]
+
+BINARY_EXPLANATION_LINES = [
+    "(This appears to be a binary file; contents omitted.)\n"
+    ]
+
+REVCRE = re.compile("^(NONE|[0-9.]+)$")
+NOVERSION = "Couldn't generate diff; no version number found in filespec: %s"
+BACKSLASH = "Couldn't generate diff: backslash in filespec's filename: %s"
+
+
+
+def usage(code, msg=''):
+    print __doc__ % globals()
+    if msg:
+        print msg
+    sys.exit(code)
+
+
+
+def calculate_diff(filespec, contextlines):
+    file, oldrev, newrev = string.split(filespec, ',')
+    # Make sure we can find a CVS version number
+    if not REVCRE.match(oldrev):
+        return NOVERSION % filespec
+    if not REVCRE.match(newrev):
+        return NOVERSION % filespec
+
+    if string.find(file, '\\') <> -1:
+        # I'm sorry, a file name that contains a backslash is just too much.
+        # XXX if someone wants to figure out how to escape the backslashes in
+        # a safe way to allow filenames containing backslashes, this is the
+        # place to do it.  --Zooko 2002-03-17
+        return BACKSLASH % filespec
+
+    if string.find(file, "'") <> -1:
+        # Those crazy users put single-quotes in their file names!  Now we
+        # have to escape everything that is meaningful inside double-quotes.
+        filestr = string.replace(file, '`', '\`')
+        filestr = string.replace(filestr, '"', '\"')
+        filestr = string.replace(filestr, '$', '\$')
+        # and quote it with double-quotes.
+        filestr = '"' + filestr + '"'
+    else:
+        # quote it with single-quotes.
+        filestr = "'" + file + "'"
+    if oldrev == 'NONE':
+        try:
+            if os.path.exists(file):
+                fp = open(file)
+            else:
+                update_cmd = "cvs -fn update -r %s -p %s" % (newrev, filestr)
+                fp = os.popen(update_cmd)
+            lines = fp.readlines()
+            fp.close()
+            # Is this a binary file?  Let's look at the first few
+            # lines to figure it out:
+            for line in lines[:5]:
+                for c in string.rstrip(line):
+                    if c in string.whitespace:
+                        continue
+                    if c < ' ' or c > chr(127):
+                        lines = BINARY_EXPLANATION_LINES[:]
+                        break
+            lines.insert(0, '--- NEW FILE: %s ---\n' % file)
+        except IOError, e:
+            lines = ['***** Error reading new file: ',
+                     str(e), '\n***** file: ', file, ' cwd: ', os.getcwd()]
+    elif newrev == 'NONE':
+        lines = ['--- %s DELETED ---\n' % file]
+    else:
+        # This /has/ to happen in the background, otherwise we'll run into CVS
+        # lock contention.  What a crock.
+        if contextlines > 0:
+            difftype = "-C " + str(contextlines)
+        else:
+            difftype = "-u"
+        diffcmd = "/usr/bin/cvs -f diff -kk %s --minimal -r %s -r %s %s" \
+                  % (difftype, oldrev, newrev, filestr)
+        fp = os.popen(diffcmd)
+        lines = fp.readlines()
+        sts = fp.close()
+        # ignore the error code, it always seems to be 1 :(
+##        if sts:
+##            return 'Error code %d occurred during diff\n' % (sts >> 8)
+    if len(lines) > DIFF_TRUNCATE_IF_LARGER:
+        removedlines = len(lines) - DIFF_HEAD_LINES - DIFF_TAIL_LINES
+        del lines[DIFF_HEAD_LINES:-DIFF_TAIL_LINES]
+        lines.insert(DIFF_HEAD_LINES,
+                     '[...%d lines suppressed...]\n' % removedlines)
+    return string.join(lines, '')
+
+
+
+def blast_mail(subject, people, filestodiff, contextlines, fromhost):
+    # cannot wait for child process or that will cause parent to retain cvs
+    # lock for too long.  Urg!
+    if not os.fork():
+        # in the child
+        # give up the lock you cvs thang!
+        time.sleep(2)
+        # Create the smtp connection to the localhost
+        conn = smtplib.SMTP()
+        conn.connect(MAILHOST, MAILPORT)
+        user = pwd.getpwuid(os.getuid())[0]
+        domain = fromhost or getfqdn()
+        author = '%s@%s' % (user, domain)
+        s = StringIO()
+        sys.stdout = s
+        try:
+            print '''\
+From: %(author)s
+To: %(people)s
+Subject: %(subject)s
+''' % {'author' : author,
+       'people' : string.join(people, COMMASPACE),
+       'subject': subject,
+       }
+            s.write(sys.stdin.read())
+            # append the diffs if available
+            print
+            for file in filestodiff:
+                print calculate_diff(file, contextlines)
+        finally:
+            sys.stdout = sys.__stdout__
+        resp = conn.sendmail(author, people, s.getvalue())
+        conn.close()
+        os._exit(0)
+
+
+
+# scan args for options
+def main():
+    try:
+        opts, args = getopt.getopt(
+            sys.argv[1:], 'hC:cuqf:',
+            ['fromhost=', 'context=', 'cvsroot=', 'help', 'quiet'])
+    except getopt.error, msg:
+        usage(1, msg)
+
+    # parse the options
+    contextlines = 2
+    verbose = 1
+    fromhost = None
+    for opt, arg in opts:
+        if opt in ('-h', '--help'):
+            usage(0)
+        elif opt == '--cvsroot':
+            os.environ['CVSROOT'] = arg
+        elif opt in ('-C', '--context'):
+            contextlines = int(arg)
+        elif opt == '-c':
+            if contextlines <= 0:
+                contextlines = 2
+        elif opt == '-u':
+            contextlines = 0
+        elif opt in ('-q', '--quiet'):
+            verbose = 0
+        elif opt in ('-f', '--fromhost'):
+            fromhost = arg
+
+    # What follows is the specification containing the files that were
+    # modified.  The argument actually must be split, with the first component
+    # containing the directory the checkin is being made in, relative to
+    # $CVSROOT, followed by the list of files that are changing.
+    if not args:
+        usage(1, 'No CVS module specified')
+    subject = args[0]
+    fileargs = args[1:-1]
+    specs = []
+    specs.append(subject)
+    while len(fileargs) > 0:
+         specs.append(string.join(fileargs[:3], ','))
+         fileargs = fileargs[3:]
+
+    if not args[-1]:
+	usage(1, 'No recipients specified')
+    people = []
+    people.append(args[-1])
+
+    # The remaining args should be the email addresses
+    # Now do the mail command
+
+    if verbose:
+        print 'Mailing %s...' % string.join(people, COMMASPACE)
+
+    if specs == ['-', 'Imported', 'sources']:
+        return
+    if specs[-3:] == ['-', 'New', 'directory']:
+        del specs[-3:]
+    elif len(specs) > 2:
+        L = specs[:2]
+        for s in specs[2:]:
+            prev = L[-1]
+            if string.count(prev, ',') < 2:
+                L[-1] = "%s %s" % (prev, s)
+            else:
+                L.append(s)
+        specs = L
+
+    if verbose:
+        print 'Generating notification message...'
+    blast_mail(subject, people, specs[1:], contextlines, fromhost)
+    if verbose:
+        print 'Generating notification message... done.'
+
+
+
+if __name__ == '__main__':
+    main()
+    sys.exit(0)


Property changes on: trunk/gforge_base/evolvisforge/plugins.test/scmcvs/bin/syncmail-cvs-1.12
___________________________________________________________________
Added: svn:executable
   + *

Added: trunk/gforge_base/evolvisforge/plugins.test/scmcvs/cgi-bin/cvsweb
===================================================================
--- trunk/gforge_base/evolvisforge/plugins.test/scmcvs/cgi-bin/cvsweb	                        (rev 0)
+++ trunk/gforge_base/evolvisforge/plugins.test/scmcvs/cgi-bin/cvsweb	2010-02-26 00:19:01 UTC (rev 4850)
@@ -0,0 +1,4529 @@
+#!/usr/bin/perl -T
+#
+# cvsweb - a CGI interface to CVS trees.
+#
+# Written in their spare time by
+#             Bill Fenner          <fenner at FreeBSD.org>   (original work)
+# extended by Henner Zeller        <zeller at think.de>,
+#             Henrik Nordstrom     <hno at hem.passagen.se>
+#             Ken Coar             <coar at Apache.Org>
+#             Dick Balaska         <dick at buckosoft.com>
+#             Akinori MUSHA        <knu at FreeBSD.org>
+#             Jens-Uwe Mager       <jum at helios.de>
+#             Ville Skyttä         <scop at FreeBSD.org>
+#             Vassilii Khachaturov <vassilii at tarunz.org>
+#
+# Based on:
+# * Bill Fenners cvsweb.cgi revision 1.28 available from:
+#   http://www.FreeBSD.org/cgi/cvsweb.cgi/www/en/cgi/cvsweb.cgi
+#
+# Copyright (c) 1996-1998 Bill Fenner
+#           (c) 1998-1999 Henner Zeller
+#           (c) 1999      Henrik Nordstrom
+#           (c) 2000-2002 Akinori MUSHA
+#           (c) 2002-2004 Ville Skyttä
+# 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.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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.
+#
+# $FreeBSD: projects/cvsweb/cvsweb.cgi,v 1.272 2004/08/20 18:28:44 scop Exp $
+# $Id$
+# $Idaemons: /home/cvs/cvsweb/cvsweb.cgi,v 1.84 2001/10/07 20:50:10 knu Exp $
+#
+###
+
+require 5.006;
+
+use strict;
+
+use warnings;
+use filetest qw(access);
+
+use vars qw (
+  $VERSION $CheckoutMagic $MimeTypes
+  $config $allow_version_select
+  @CVSrepositories @CVSROOT %CVSROOT %CVSROOTdescr
+  %MIRRORS %DEFAULTVALUE %ICONS %MTYPES
+  %DIFF_COMMANDS @DIFFTYPES %DIFFTYPES @LOGSORTKEYS %LOGSORTKEYS
+  %alltags %fileinfo %tags @branchnames %nameprinted
+  %symrev %revsym @allrevisions %date %author @revdisplayorder
+  @revisions %state %difflines %log %branchpoint @revorder $keywordsubstitution
+  $prcgi @prcategories $re_prcategories $prkeyword $re_prkeyword $mancgi
+  $doCheckout $scriptname $scriptwhere
+  $where $Browser $nofilelinks $maycompress @stickyvars %funcline_regexp
+  $is_links $is_lynx $is_w3m $is_msie $is_mozilla3 $is_textbased
+  %input $query $barequery $sortby $bydate $byrev $byauthor
+  $bylog $byfile $defaultDiffType $logsort $cvstree $cvsroot
+  $charset $output_filter
+  @command_path %CMD $allow_compress $backicon $diricon $fileicon $graphicon
+  $fullname $cvstreedefault $logo $defaulttitle $address $binfileicon
+  $long_intro $short_instruction $shortLogLen $show_author $authorurl_pattern
+  $tablepadding $hr_breakable $showfunc $hr_ignwhite $hr_ignkeysubst
+  $inputTextSize $mime_types $allow_annotate $allow_markup
+  $allow_log_extra $allow_dir_extra $allow_source_extra
+  $allow_cvsgraph $cvsgraph_config $use_java_script $edit_option_form
+  $show_subdir_lastmod $show_log_in_markup $preformat_in_markup
+  $tabstop $state $annTable $sel @ForbiddenFiles
+  $use_descriptions %descriptions @mytz $dwhere
+  $use_moddate $gzip_open $file_list_len
+  $allow_tar @tar_options @gzip_options @zip_options @cvs_options
+  @annotate_options @rcsdiff_options
+  $HTML_DOCTYPE $HTML_META $cssurl $CSS $cvshistory_url
+  $allow_enscript @enscript_options %enscript_types
+);
+
+use Cwd                   qw(abs_path cwd);
+use File::Basename        qw(dirname);
+use File::Path            qw(rmtree);
+use File::Spec::Functions qw(canonpath catdir catfile curdir devnull rootdir
+                             tmpdir updir);
+use File::Temp            qw(tempdir tempfile);
+use IPC::Run              qw();
+use Time::Local           qw(timegm);
+use URI::Escape           qw(uri_escape uri_unescape);
+
+use constant VALID_PATH   => qr/^([[:^cntrl:]]+)$/o;
+use constant VALID_TAG1   => qr/^([a-zA-Z][[:graph:]]*)$/o;
+use constant VALID_TAG2   => qr/^([^\$,.:;@]+)$/o;
+use constant CVSWEBMARKUP => qr{^text/(x-cvsweb|vnd\.viewcvs)-markup$}io;
+use constant LOG_FILESEPR => qr/^={77}$/o;
+use constant LOG_REVSEPR  => qr/^-{28}$/o;
+
+use constant HAS_ZLIB     => eval { require Compress::Zlib; };
+use constant HAS_EDIFF    => eval { require String::Ediff;  };
+
+# -----------------------------------------------------------------------------
+
+# All global initialization that can be done in compile time should go to
+# the BEGIN block.  Persistent environments, such as mod_perl, will benefit
+# from this.
+
+BEGIN
+{
+  $VERSION = '3.0.2';
+
+  $HTML_DOCTYPE =
+    '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" ' .
+    '"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">';
+
+  $HTML_META = <<EOM;
+<meta name="robots" content="nofollow" />
+<meta name="generator" content="FreeBSD-CVSweb $VERSION" />
+<meta http-equiv="Content-Script-Type" content="text/javascript" />
+<meta http-equiv="Content-Style-Type" content="text/css" />
+EOM
+
+  # Use MIME::Types for MIME type lookups if it's available.
+  eval {
+    require MIME::Types;
+    $MimeTypes = MIME::Types->new(only_complete => 1);
+  };
+  $MimeTypes = undef if $@;
+
+  $CheckoutMagic = '~checkout~';
+}
+
+# -----------------------------------------------------------------------------
+
+sub printDiffSelect($);
+sub printDiffSelectStickyVars();
+sub getDiffLinks($$$);
+sub printLogSortSelect($);
+sub findLastModifiedSubdirs(@);
+sub htmlify_sub(&$);
+sub htmlify($;$);
+sub spacedHtmlText($;$);
+sub link($$);
+sub revcmp($$);
+sub fatal($$@);
+sub redirect($;$);
+sub safeglob($);
+sub search_path($);
+sub getEnscriptHL($);
+sub getMimeType($;$);
+sub head($;$);
+sub scan_directives(@);
+sub openOutputFilter();
+sub doAnnotate($);
+sub doCheckout($$);
+sub doEnscript($$$;$);
+sub doGraph();
+sub doGraphView();
+sub cvswebMarkup($$$$$$;$);
+sub viewable($);
+sub doDiff($$$$$$);
+sub getDirLogs($$@);
+sub readLog($;$);
+sub printLog($$$;$$);
+sub doLog($);
+sub flush_diff_rows($$$$);
+sub human_readable_diff($$);
+sub navigateHeader($$$$$;$);
+sub plural_write($$);
+sub readableTime($$);
+sub clickablePath($$);
+sub chooseCVSRoot();
+sub chooseMirror();
+sub fileSortCmp();
+sub download_url($$;$);
+sub download_link($$$;$);
+sub display_url($$;$);
+sub display_link($$;$$);
+sub graph_link($;$);
+sub history_link($$;$);
+sub toggleQuery($;$);
+sub htmlquote($);
+sub htmlunquote($);
+sub uri_escape_path($);
+sub http_header(;$$);
+sub html_header($;$);
+sub html_footer();
+sub link_tags($);
+sub urlize_author($);
+sub forbidden($);
+sub startproc(@);
+sub runproc(@);
+sub checkout_to_temp($$$);
+
+##### Start of Configuration Area ########
+
+# Get rid of unsafe environment vars.  Don't do this in BEGIN...
+delete(@ENV{qw(PATH IFS CDPATH ENV BASH_ENV)});
+
+my ($mydir) = (dirname($0) =~ /(.*)/);    # untaint
+
+# == EDIT this ==
+# Locations to search for user configuration, in order:
+for ('/etc/gforge/plugins/scmcvs/cvsweb.conf') {
+  if (-r $_) {
+    $config = $_;
+    last;
+  }
+}
+undef $mydir;
+
+# == Configuration defaults ==
+# Defaults for configuration variables that shouldn't need
+# to be configured..
+$allow_version_select = 1;
+$allow_log_extra      = 1;
+
+##### End of Configuration Area   ########
+
+######## Configuration variables #########
+# These are defined to allow checking with perl -cw
+
+ at CVSrepositories = @CVSROOT = %CVSROOT = %MIRRORS = %DEFAULTVALUE = %ICONS =
+  %MTYPES = %tags = %alltags = %fileinfo = %DIFF_COMMANDS = ();
+
+$cvstreedefault = $logo = $defaulttitle =
+  $address = $long_intro = $short_instruction = $shortLogLen = $show_author = $authorurl_pattern =
+  $tablepadding = $hr_breakable = $showfunc = $hr_ignwhite =
+  $hr_ignkeysubst = $inputTextSize = $mime_types = $allow_annotate =
+  $allow_markup = $use_java_script = $edit_option_form =
+  $show_subdir_lastmod = $show_log_in_markup =
+  $tabstop = $use_moddate = $gzip_open = undef;
+
+ at DIFFTYPES = qw(h H u c s);
+ at DIFFTYPES{@DIFFTYPES} = (
+  {
+    'descr'   => 'colored',
+    'opts'    => ['-u'],
+    'colored' => 1,
+  },
+  {
+    'descr'   => 'long colored',
+    'opts'    => ['--unified=15'],
+    'colored' => 1,
+  },
+  {
+    'descr'   => 'unified',
+    'opts'    => ['-u'],
+    'colored' => 0,
+  },
+  {
+    'descr'   => 'context',
+    'opts'    => ['-c'],
+    'colored' => 0,
+  },
+  {
+    'descr'   => 'side by side',
+    # width=168 should be enough to support 80 character line lengths
+    'opts'    => ['--side-by-side', '--width=168'],
+    'colored' => 0,
+  },
+);
+
+ at LOGSORTKEYS = qw(cvs date rev);
+ at LOGSORTKEYS{@LOGSORTKEYS} = (
+  { descr => 'Not sorted',  },
+  { descr => 'Commit date', },
+  { descr => 'Revision',    },
+);
+
+##### End of configuration variables #####
+
+my $pathinfo = '';
+if (defined($ENV{PATH_INFO}) && $ENV{PATH_INFO} ne '') {
+  ($pathinfo) = ($ENV{PATH_INFO} =~ VALID_PATH)
+    or fatal('500 Internal Error',
+             'Illegal PATH_INFO in environment: <code>%s</code>',
+             $ENV{PATH_INFO});
+}
+if ($ENV{SCRIPT_NAME}) {
+  ($scriptname) = ($ENV{SCRIPT_NAME} =~ VALID_PATH)
+    or fatal('500 Internal Error',
+             'Illegal SCRIPT_NAME in environment: <code>%s</code>',
+             $ENV{SCRIPT_NAME});
+}
+
+$scriptname    = '' unless defined($scriptname);
+
+$where         =  $pathinfo;
+$doCheckout    =  $where =~ s|^/$CheckoutMagic/|/|o;
+$where         =~ s|^/||;
+$scriptname    =~ s|^/*|/|;
+
+if(!defined($ENV{'PHP_WRAPPER'})) {
+# Let's workaround thttpd's stupidity..
+if ($scriptname =~ m|/$|) {
+  $pathinfo .= '/';
+  my $re = quotemeta $pathinfo;
+  $scriptname =~ s/$re$//;
+}
+}
+
+# $scriptname : the URI escaped path to this script
+# $where      : the path in the CVS repository (without leading /, or only /)
+# $scriptwhere: the URI escaped $scriptname + '/' + $where
+$scriptname   = uri_escape_path($scriptname);
+$scriptwhere  = join('/', $scriptname, uri_escape_path($where));
+$where        = '/' if ($where eq '');
+
+# In text-based browsers, it's very annoying to have two links per file;
+# skip linking the image for them.
+
+$Browser     = $ENV{HTTP_USER_AGENT} || '';
+$is_links    = ($Browser =~ m`^E?Links `);
+$is_lynx     = ($Browser =~ m`^Lynx/`i);
+$is_w3m      = ($Browser =~ m`^w3m/`i);
+$is_msie     = ($Browser =~ m`MSIE`);
+$is_mozilla3 = ($Browser =~ m`^Mozilla/[3-9]`);
+
+$is_textbased = ($is_links || $is_lynx || $is_w3m);
+
+$nofilelinks = $is_textbased;
+
+# newer browsers accept gzip content encoding
+# and state this in a header
+# (netscape did always but didn't state it)
+# It has been reported that these
+#  braindamaged MS-Internet Exploders claim that they
+# accept gzip .. but don't in fact and
+# display garbage then :-/
+# Turn off gzip if running under mod_perl and no zlib is available,
+# piping does not work as expected inside the server.
+$maycompress = (
+  ((defined($ENV{HTTP_ACCEPT_ENCODING})
+    && $ENV{HTTP_ACCEPT_ENCODING} =~ /gzip/)
+   || $is_mozilla3)
+  && !$is_msie
+  && !(defined($ENV{MOD_PERL}) && !HAS_ZLIB)
+);
+
+# Variables that will be sticky in all constructed links/query strings.
+ at stickyvars =
+  qw(cvsroot hideattic ignorecase sortby logsort f only_with_tag ln);
+
+#
+# Load configuration.
+#
+if (-f $config) {
+  do "$config"
+    or fatal("500 Internal Error",
+             'Error in loading configuration file: %s<br /><br />%s<br />',
+             $config, $@);
+} else {
+  fatal("500 Internal Error",
+        'Configuration not found.  Set the variable <code>$config</code> in cvsweb.cgi to your <b>cvsweb.conf</b> configuration file first.');
+}
+
+# Try to find a readable dir where we can cd into.  Some abs_path()
+# implementations as well as various cvs operations require such a dir to
+# work properly.
+{
+  local $^W = 0;
+  if (!-r cwd()) {
+    for my $dir (tmpdir(), rootdir()) {
+      last if (-r $dir && chdir($dir));
+    }
+  }
+}
+
+$CSS = $cssurl ?
+  sprintf("<link rel=\"stylesheet\" type=\"text/css\" href=\"%s\" />\n",
+          htmlquote($cssurl)) : '';
+
+# --- input parameters
+
+my %query = ();
+if (defined($ENV{QUERY_STRING})) {
+  for my $p (split(/[;&]+/, $ENV{QUERY_STRING})) {
+    next unless $p;
+    $p =~ y/+/ /;
+    my ($key, $val) = split(/=/, $p, 2);
+    next unless defined($key);
+    $val = 1 unless defined($val);
+    ($key = uri_unescape($key)) =~ /[[:graph:]]/ or next;
+    ($val = uri_unescape($val)) =~ /[[:graph:]]/ or next;
+    $query{$key} = $val;
+  }
+}
+
+undef %input;
+
+my $t;
+for my $p (qw(graph hideattic hidecvsroot hidenonreadable ignorecase ln copt
+              makeimage options tarball)) {
+  $t = $query{$p};
+  if (defined($t)) {
+    ($input{$p}) = ($t =~ /^([01]|on)$/)
+      or fatal('500 Internal Error',
+               'Invalid boolean value: <code>%s=%s</code>', $p, $t);
+  }
+}
+for my $p (qw(annotate r1 r2 rev tr1 tr2)) {
+  $t = $query{$p};
+  if (defined($t)) {
+    if (($p eq 'r1' || $p eq 'r2') && $t eq 'text') {
+      # Special case for the "Use text field" option in the log view diff form.
+      $input{$p} = $t;
+      next;
+    } elsif ($p eq 'rev' && ($t eq '.' || $t eq 'HEAD')) {
+      # Another special case, allow linking to latest revision using these.
+      $input{$p} = '.';
+      next;
+    }
+    my ($rev, $tag) = split(/:/, $t, 2);
+    ($input{$p}) = ($rev =~ /^(\d+(?:\.\d+)*)$/)
+      or fatal('500 Internal Error',
+               'Invalid revision: <code>%s=%s</code>', $p, $t);
+    if (defined($tag)) {
+      ($tag) = ($tag =~ VALID_TAG1)
+        or fatal('500 Internal Error',
+                 'Invalid tag/branch name in revision: <code>%s=%s</code>',
+                 $p, $t);
+      ($tag) = ($tag =~ VALID_TAG2)
+        or fatal('500 Internal Error',
+                 'Invalid tag/branch name in revision: <code>%s=%s</code>',
+                 $p, $t);
+      $input{$p} .= ':' . $tag;
+    }
+  }
+}
+$t = defined($query{only_with_tag}) ?
+  $query{only_with_tag} : $query{only_on_branch}; # Backwards compatibility.
+if (defined($t)) {
+  ($input{only_with_tag}) = ($t =~ VALID_TAG1)
+    or fatal('500 Internal Error',
+             'Invalid tag/branch name: <code>%s</code>', $t);
+  ($input{only_with_tag}) = ($t =~ VALID_TAG2)
+    or fatal('500 Internal Error',
+             'Invalid tag/branch name: <code>%s</code>', $t);
+}
+$t = $query{logsort};
+if (defined($t)) {
+  ($input{logsort}) = ($t =~ /^(cvs|date|rev)$/)
+    or fatal('500 Internal Error',
+             'Unsupported log sort key: <code>%s</code>', $t);
+}
+$t = $query{f};
+if (defined($t)) {
+  ($input{f}) = ($t =~ /^(([hH]|[ucs]c?)|ext\d*)$/)
+    or fatal('500 Internal Error',
+             'Unsupported diff format: <code>%s</code>', $t);
+}
+$t = $query{sortby};
+if (defined($t)) {
+  ($input{sortby}) = ($t =~ /^(file|date|rev|author|log)$/)
+    or fatal('500 Internal Error',
+             'Unsupported dir sort key: <code>%s</code>', $t);
+}
+$t = $query{'content-type'};
+if (defined($t)) {
+  ($input{'content-type'}) = ($t =~ m|^([-0-9A-Za-z]+/[-0-9A-Za-z\.]+)$|)
+    or fatal('500 Internal Error',
+             'Unsupported content type: <code>%s</code>', $t);
+}
+$t = $query{cvsroot};
+if (defined($t)) {
+  ($input{cvsroot}) = ($t =~ /^([[:print:]]+)$/)
+    or fatal('500 Internal Error',
+             'Invalid symbolic CVS root name: <code>%s</code>', $t);
+}
+$t = $query{path};
+if (defined($t)) {
+  ($input{path}) = ($t =~ VALID_PATH)
+    or fatal('500 Internal Error',
+             'Invalid path: <code>%s</code>', $t);
+}
+undef($t);
+undef(%query);
+
+# --- end input parameters
+
+#
+# CVS roots
+#
+my $rootfound = 0;
+for (my $i = 0; $i < scalar(@CVSrepositories); $i += 2) {
+  my $key = $CVSrepositories[$i];
+  my ($descr, $root) = @{$CVSrepositories[$i+1]};
+  $root = canonpath($root) . '/' . $input{cvsroot};
+  unless (-d $root) {
+    warn("Root '$root' defined in \@CVSrepositories is not a directory, " .
+         'entry ignored');
+    next;
+  }
+  $rootfound ||= 1;
+  $cvstreedefault = $key unless defined($cvstreedefault);
+  $CVSROOTdescr{$key} = $descr . ':' . $input{cvsroot};
+  $CVSROOT{$key} = $root;
+  push(@CVSROOT, $key);
+}
+unless ($rootfound) {
+  fatal('500 Internal Error',
+        'No valid CVS roots found!  See <code>@CVSrepositories</code> in ' .
+        'the configuration file (<code>%s</code>).',
+        $config);
+}
+undef $rootfound;
+
+#
+# Default CVS root
+#
+if (!defined($CVSROOT{$cvstreedefault})) {
+  fatal("500 Internal Error",
+        '<code>$cvstreedefault</code> points to a repository (%s) not ' .
+        'defined in <code>@CVSrepositories</code> in your configuration ' .
+        'file (<code>%s</code>).',
+        $cvstreedefault,
+        $config);
+}
+
+#$DEFAULTVALUE{cvsroot} = $cvstreedefault;
+
+while (my ($key, $defval) = each %DEFAULTVALUE) {
+
+  # Replace not given parameters with defaults.
+  next unless (defined($defval) && $defval =~ /\S/ && !defined($input{$key}));
+
+  # Empty checkboxes in forms return nothing, so we define a helper variable
+  # in these forms (copt) which indicates that we just set parameters with a
+  # checkbox.
+  if ($input{copt}) {
+
+    # 'copt' is set -> the result of empty input checkbox
+    # -> set to zero (disable) if default is a boolean (0|1).
+    $input{$key} = 0 if ($defval eq '0' || $defval eq '1');
+
+  } else {
+
+    # 'copt' isn't set --> empty input is not the result
+    # of empty input checkbox --> set default.
+    $input{$key} = $defval;
+  }
+}
+
+$barequery = "";
+my @barequery;
+foreach (@stickyvars) {
+
+  # construct a query string with the sticky non default parameters set
+  if (defined($input{$_})
+      && !(defined($DEFAULTVALUE{$_}) && $input{$_} eq $DEFAULTVALUE{$_}))
+  {
+    push(@barequery, join('=', uri_escape($_), uri_escape($input{$_})));
+  }
+}
+
+if ($allow_enscript) {
+  push(@DIFFTYPES, qw(uc cc sc));
+  @DIFFTYPES{qw(uc cc sc)} = (
+    {
+     'descr'   => 'unified, colored',
+     'opts'    => ['-u'],
+     'colored' => 0,
+    },
+    {
+     'descr'   => 'context, colored',
+     'opts'    => ['-c'],
+     'colored' => 0,
+    },
+    {
+     'descr'   => 'side by side, colored',
+     # width=168 should be enough to support 80 character line lengths
+     'opts'    => ['--side-by-side', '--width=168'],
+     'colored' => 0,
+    },
+  );
+} else {
+  # No Enscript -> respect difftype, but don't offer colorization.
+  if ($input{f} && $input{f} =~ /^([ucs])c$/) {
+    $input{f} = $1;
+  }
+}
+
+# is there any query ?
+if (@barequery) {
+  $barequery = join (';', @barequery);
+  $query     = "?$barequery";
+  $barequery = ";$barequery";
+} else {
+  $query = "";
+}
+undef @barequery;
+
+if (defined($input{path})) {
+  redirect("$scriptname/$input{path}$query");
+}
+
+# get actual parameters
+{
+  my $sortby = $input{sortby} || 'file';
+  $bydate    = 0;
+  $byrev     = 0;
+  $byauthor  = 0;
+  $bylog     = 0;
+  $byfile    = 0;
+  if ($sortby eq 'date') {
+    $bydate = 1;
+  } elsif ($sortby eq 'rev') {
+    $byrev = 1;
+  } elsif ($sortby eq 'author') {
+    $byauthor = 1;
+  } elsif ($sortby eq 'log') {
+    $bylog = 1;
+  } else {
+    $byfile = 1;
+  }
+}
+
+$defaultDiffType = $input{f};
+
+$logsort = $input{logsort};
+
+# alternate CVS-Tree, configured in cvsweb.conf
+if ($input{cvsroot} && $CVSROOT{$input{cvsroot}}) {
+  $cvstree = $input{cvsroot};
+} else {
+  $cvstree = $cvstreedefault;
+}
+
+$cvsroot = $CVSROOT{$cvstree};
+
+# create icons out of description
+foreach my $k (keys %ICONS) {
+  my ($itxt, $ipath, $iwidth, $iheight) = @{$ICONS{$k}};
+  no strict 'refs';
+  if ($ipath) {
+    ${"${k}icon"} =
+      sprintf('<img src="%s" alt="%s" border="0" width="%d" height="%d" />',
+              htmlquote($ipath), htmlquote($itxt), $iwidth, $iheight);
+  } else {
+    ${"${k}icon"} = $itxt;
+  }
+}
+
+my $config_cvstree = "$config-$cvstree";
+
+# Do some special configuration for cvstrees
+if (-f $config_cvstree) {
+  do "$config_cvstree"
+    or fatal("500 Internal Error",
+             'Error in loading configuration file: %s<br /><br />%s<br />',
+             $config_cvstree, $@);
+}
+undef $config_cvstree;
+
+$re_prcategories  = '(?:' . join ('|', @prcategories) . ')' if @prcategories;
+$re_prkeyword     = quotemeta($prkeyword) if defined($prkeyword);
+$prcgi           .= '%s' if defined($prcgi) && $prcgi !~ /%s/;
+
+$fullname         = catfile($cvsroot, $where);
+
+my $rewrite = 0;
+if ($pathinfo =~ m|//|) {
+  $pathinfo =~ y|/|/|s;
+  $rewrite = 1;
+}
+if (-d $fullname) {
+  if ($pathinfo !~ m|/$|) {
+    $pathinfo .= '/';
+    $rewrite   = 1;
+  }
+} elsif ($pathinfo =~ m|/$|) {
+  chop $pathinfo;
+  $rewrite = 1;
+}
+if ($rewrite) {
+  redirect($scriptname . uri_escape_path($pathinfo) . $query, 1);
+}
+undef $rewrite;
+
+undef $pathinfo;
+
+if (!-d $cvsroot) {
+  fatal("500 Internal Error",
+        '$CVSROOT not found!<p>The server on which the CVS tree lives is probably down.  Please try again in a few minutes.');
+}
+
+#
+# Short-circuit forbidden things.  Note that $fullname should not change
+# after this, because the rest of the code assumes this check has already
+# been done.
+#
+fatal('403 Forbidden', 'Access to %s forbidden.', $where)
+  if forbidden($fullname);
+
+#
+# Handle tarball downloads before any headers are output.
+#
+if ($input{tarball}) {
+  fatal('403 Forbidden', 'Downloading tarballs is prohibited.')
+    unless $allow_tar;
+
+  my ($module)  =  ($where =~ m,^/?(.*),);    # untaint
+  $module       =~ s,/([^/]*)$,,;
+  my ($ext)     =  ($1 =~ /(\.t(?:ar\.)?gz|\.zip)$/);
+  my ($basedir) =  ($module =~ m,([^/]+)$,);
+
+  if ($basedir eq '' || $module eq '') {
+    fatal('500 Internal Error',
+          'You cannot download the top level directory.');
+  }
+
+  my $istar = ($ext eq '.tar.gz' || $ext eq '.tgz');
+  if ($istar) {
+    fatal('500 Internal Error', 'tar command not found.') unless $CMD{tar};
+    fatal('500 Internal Error', 'gzip command not found.') unless $CMD{gzip};
+  }
+  my $iszip = ($ext eq '.zip');
+  if ($iszip && !$CMD{zip}) {
+    fatal('500 Internal Error', 'zip command not found.');
+  }
+  if (!$istar && !$iszip) {
+    fatal('500 Internal Error', 'Unsupported archive type.');
+  }
+
+  my $tmpexportdir;
+  eval {
+    local $SIG{__DIE__};
+    # Don't use the CLEANUP argument to tempdir() here, since we might be under
+    # mod_perl (the process runs for a long time), unlink explicitly later.
+    $tmpexportdir = tempdir('.cvsweb.XXXXXXXX', TMPDIR => 1);
+  };
+  if ($@) {
+    fatal('500 Internal Error', 'Unable to make temporary directory: %s', $@);
+  }
+  if (!chdir($tmpexportdir)) {
+    fatal('500 Internal Error',
+          "Can't cd to temporary directory %s: %s", $tmpexportdir, $!);
+  }
+
+  my @fatal;
+  my $tag = $input{only_with_tag} || 'HEAD';
+  $tag = 'HEAD' if ($tag eq 'MAIN');
+
+  my @cmd =
+    ($CMD{cvs}, @cvs_options, '-Qd', $cvsroot, 'export', '-r', $tag,
+     '-d', $basedir, $module);
+  my $export_err;
+  my ($errcode, $err) = runproc(\@cmd, '2>', \$export_err);
+  if ($errcode) {
+    @fatal =
+      ('500 Internal Error',
+       'Export failure (exit status %s), output: <pre>%s</pre>',
+       $errcode, $err || $export_err);
+
+  } else {
+
+    $| = 1;    # Essential to get the buffering right.
+    local (*TAR_OUT);
+
+    my (@cmd, $ctype);
+    if ($istar) {
+      my @tar = ($CMD{tar}, @tar_options, '-cf', '-', $basedir);
+      my @gzip = ($CMD{gzip}, @gzip_options, '-c');
+      push(@cmd, \@tar, '|', \@gzip);
+      $ctype = 'application/x-gzip';
+    } elsif ($iszip) {
+      my @zip = ($CMD{zip}, @zip_options, '-r', '-', $basedir);
+      push(@cmd, \@zip, \'');
+      $ctype = 'application/zip';
+    }
+    push(@cmd, '>pipe', \*TAR_OUT);
+
+    my ($h, $err) = startproc(@cmd);
+    if ($h) {
+      print "Content-Type: $ctype\r\n\r\n";
+      local $/ = undef;
+      print <TAR_OUT>;
+      $h->finish();
+    } else {
+      @fatal = ('500 Internal Error',
+                '%s failure (exit status %s), output: <pre>%s</pre>',
+                $istar ? 'Tar' : 'Zip', $? >> 8 || -1, $err);
+    }
+  }
+
+  # Clean up.
+  rmtree($tmpexportdir);
+
+  &fatal(@fatal) if @fatal;
+
+  exit;
+}
+
+##############################
+# View a directory
+###############################
+if (-d $fullname) {
+
+  my $dh = do { local (*DH); };
+  opendir($dh, $fullname) or fatal("404 Not Found", '%s: %s', $where, $!);
+  my @dir = grep(!forbidden(catfile($fullname, $_)), readdir($dh));
+  closedir($dh);
+  my @subLevelFiles = findLastModifiedSubdirs(@dir)
+    if ($show_subdir_lastmod);
+  my @unreadable = getDirLogs($cvsroot, $where, @subLevelFiles);
+
+  if ($where eq '/') {
+    html_header($defaulttitle);
+    $long_intro =~ s/!!CVSROOTdescr!!/$CVSROOTdescr{$cvstree}/g;
+    print $long_intro;
+  } else {
+    html_header($where);
+    my $html = (-f catfile($fullname, 'README.cvs.html,v') ||
+                -f catfile($fullname, 'Attic', 'README.cvs.html,v'));
+    my $text = (!$html &&
+                (-f catfile($fullname, 'README.cvs,v') ||
+                 -f catfile($fullname, 'Attic', 'README.cvs,v')));
+    if ($html || $text) {
+      my $rev = $input{only_with_tag} || 'HEAD';
+      my $cr = abs_path($cvsroot) || $cvsroot;
+      my $co = "$where/README.cvs.html" if $html;
+      $co ||= "$where/README.cvs" if $text;
+      # abs_path() taints when run as a CGI...
+      if ($cr =~ VALID_PATH) {
+        $cr = $1;
+      } else {
+        fatal('500 Internal Error', 'Illegal CVS root: <code>%s</code>', $cr);
+      }
+      my @cmd = ($CMD{cvs}, @cvs_options, '-d', $cr, 'co', '-p', "-r$rev",$co);
+      local (*CVS_OUT, *CVS_ERR);
+      my ($h, $err) = startproc(\@cmd, \"", '>pipe', \*CVS_OUT,
+                                '2>pipe', \*CVS_ERR);
+      fatal('500 Internal Error', $err) unless $h;
+      if ($html) {
+        local $/ = undef;
+        print <CVS_OUT>;
+      } else {
+        print "<p>\n";
+        while (<CVS_OUT>) {
+          chomp;
+          print htmlquote($_), '<br />';
+        }
+        print "</p>";
+      }
+      $h->finish();
+    }
+    print $short_instruction;
+  }
+
+  if ($use_descriptions &&
+      open(DESC, catfile($cvsroot, 'CVSROOT', 'descriptions'))) {
+    while (<DESC>) {
+      chomp;
+      my ($dir, $description) = /(\S+)\s+(.*)/;
+      $descriptions{$dir} = $description;
+    }
+    close(DESC);
+  }
+
+  print "<p><a name=\"dirlist\"></a></p>\n";
+
+  # give direct access to dirs
+  if ($where eq '/') {
+    chooseMirror();
+    chooseCVSRoot();
+
+  } else {
+    print '<p>Current directory: <b>', clickablePath($where, 0), '</b>';
+    if ($cvshistory_url) {
+      (my $d = $where) =~ s|^/*(.*?)/*$|$1|;
+      print ' - ', history_link($d, '');
+    }
+    print "</p>\n";
+    print "<p>Current tag: <b>", htmlquote($input{only_with_tag}), "</b></p>\n"
+      if $input{only_with_tag};
+  }
+
+  print "<hr />\n";
+
+  my $infocols = 1;
+
+  printf(<<EOF, 'Directory index of ' . htmlquote($where));
+<table class="dir" width="100%%" cellspacing="0" cellpadding="$tablepadding" summary="%s">
+<tr>
+EOF
+  printf('<th colspan="2"%s>', ($byfile ? ' class="sorted"' : ''));
+
+  if ($byfile) {
+    print 'File';
+  } else {
+    print &link('File',
+                sprintf('./%s#dirlist', toggleQuery('sortby', 'file')));
+  }
+  print "</th>\n";
+
+  # Do not display the other column headers if we do not have any files
+  # with revision information.
+  if (scalar(%fileinfo)) {
+    $infocols++;
+    printf('<th%s>', ($byrev ? ' class="sorted"' : ''));
+
+    if ($byrev) {
+      print 'Rev.';
+    } else {
+      print &link('Rev.',
+                  sprintf('./%s#dirlist', toggleQuery('sortby', 'rev')));
+    }
+    print "</th>\n";
+    $infocols++;
+    printf('<th%s>', ($bydate ? ' class="sorted"' : ''));
+
+    if ($bydate) {
+      print 'Age';
+    } else {
+      print &link('Age',
+                  sprintf('./%s#dirlist', toggleQuery('sortby', 'date')));
+    }
+    print "</th>\n";
+
+    if ($show_author) {
+      $infocols++;
+      printf('<th%s>', ($byauthor ? ' class="sorted"' : ''));
+
+      if ($byauthor) {
+        print 'Author';
+      } else {
+        print
+          &link('Author',
+                sprintf('./%s#dirlist', toggleQuery('sortby', 'author')));
+      }
+      print "</th>\n";
+    }
+    $infocols++;
+    printf('<th%s>', ($bylog ? ' class="sorted"' : ''));
+
+    if ($bylog) {
+      print 'Last log entry';
+    } else {
+      print &link('Last log entry',
+                  sprintf('./%s#dirlist', toggleQuery('sortby', 'log')));
+    }
+    print "</th>\n";
+  } elsif ($use_descriptions) {
+    print "<th>Description</th>\n";
+    $infocols++;
+  }
+  print "</tr>\n";
+
+  my $dirrow = 0;
+
+  my $i;
+  lookingforattic:
+  for ($i = 0; $i <= $#dir; $i++) {
+    if ($dir[$i] eq "Attic") {
+      last lookingforattic;
+    }
+  }
+
+  if (!$input{hideattic}
+      && ($i <= $#dir)
+      && opendir($dh, $fullname . '/Attic'))
+  {
+    splice(@dir, $i, 1, grep((s|^|Attic/|, !m|/\.|), readdir($dh)));
+    closedir($dh);
+  }
+
+  my $hideAtticToggleLink =
+    $input{hideattic}
+    ? ''
+    : &link('[hide]', sprintf('./%s#dirlist', &toggleQuery('hideattic')));
+
+  # Sort without the Attic/ pathname.
+  # place directories first
+
+  my $filesexists;
+  my $filesfound;
+
+  foreach my $file (sort { &fileSortCmp } @dir) {
+
+    next if ($file eq curdir());
+
+    # ignore CVS lock and stale NFS files
+    next if ($file =~ /^\#cvs\.|^,|^\.nfs/); # \# for XEmacs cperl-mode...
+
+    # Check whether to show the CVSROOT path
+    next if ($input{hidecvsroot} && $where eq '/' && $file eq 'CVSROOT');
+
+    # Is it a directory?
+    my $isdir = -d catdir($fullname, $file);
+
+    # Ignore non-readable files and directories?
+    next if ($input{hidenonreadable} && (! -r _ || ($isdir && ! -x _)));
+
+    my $attic = '';
+    if ($file =~ s|^Attic/||) {
+      $attic = ' <span class="attic">(in the Attic) ' .
+        $hideAtticToggleLink . '</span>';
+    }
+
+    if ($file eq updir() || $isdir) {
+      next if ($file eq updir() && $where eq '/');
+      my ($rev, $date, $log, $author, $filename, $keywordsubst) =
+        @{$fileinfo{$file}} if (defined($fileinfo{$file}));
+      printf "<tr class=\"%s\">\n<td class=\"dir\" colspan=\"2\">",
+        ($dirrow % 2) ? 'even' : 'odd';
+
+      if ($file eq updir()) {
+        my $url = "../$query";
+        print $nofilelinks ? $backicon : &link($backicon, $url);
+        print '&nbsp;', &link("Parent Directory", $url);
+
+      } else {
+        my $url = './' . uri_escape_path($file) . "/$query";
+        print '<a name="', htmlquote($file), '"></a>';
+        print $nofilelinks ? $diricon : &link($diricon, $url);
+        print '&nbsp;', &link(htmlquote("$file/"), $url), $attic;
+        if ($file eq "Attic") {
+          print ' <span class="attic">',
+            &link('[show]',
+                  sprintf('./%s#dirlist', &toggleQuery('hideattic'))),
+                    '</span>';
+        }
+      }
+
+      # Show last change in dir
+      if ($filename) {
+        print "</td>\n<td>&nbsp;</td>\n<td class=\"age\">";
+        print readableTime(time() - $date, 0) if $date;
+        print "</td>\n<td class=\"author\">", urlize_author(htmlquote($author))
+          if $show_author;
+        print "</td>\n<td class=\"log\">";
+        $filename =~ s%^[^/]+/%%;
+        print &link(htmlquote("$filename/$rev"),
+                    sprintf('%s/%s%s#rev%s',
+                            uri_escape($file), uri_escape($filename),
+                            $query, $rev)), '<br />';
+        if ($log) {
+          print htmlify(substr($log, 0, $shortLogLen), $allow_dir_extra);
+          print '...' if (length($log) > 80);
+        }
+
+      } else {
+        my $dwhere = ($where ne '/' ? $where : '') . $file;
+
+        if ($use_descriptions && defined $descriptions{$dwhere}) {
+          print '<td colspan="', ($infocols - 1), '">';
+          print $descriptions{$dwhere};
+
+        } elsif ($infocols > 1) {
+
+          # close the row with the appropriate number of
+          # columns, so that the vertical seperators are visible
+          my ($cols) = $infocols;
+          while ($cols > 1) {
+            print "</td>\n<td>&nbsp;";
+            $cols--;
+          }
+        }
+      }
+
+      print "</td>\n</tr>\n";
+      $dirrow++;
+
+    } elsif ($file =~ s/,v$//) {
+
+      my $fileurl = ($attic ? 'Attic/' : '') . uri_escape_path($file);
+      my $url     = './' . $fileurl . $query;
+      $filesexists++;
+      next if (!defined($fileinfo{$file}));
+      my ($rev, $date, $log, $author, $filename, $keywordsubst) =
+        @{$fileinfo{$file}};
+      my $isbinary = $keywordsubst eq 'b' ? 1 : 0;
+      $filesfound++;
+
+      printf "<tr class=\"%s\">\n", ($dirrow % 2) ? 'even' : 'odd';
+      printf '<td class="file"%s>', $allow_cvsgraph ? '' : ' colspan="2"';
+
+      my $icon = $isbinary ? $binfileicon : $fileicon;
+      print $nofilelinks ? $icon : &link($icon, $url);
+      print '&nbsp;', &link(htmlquote($file), $url), $attic;
+      print '</td><td class="graph">', graph_link($fileurl) if $allow_cvsgraph;
+      print "</td>\n<td width=\"30\">", display_link($fileurl, $rev);
+      print "</td>\n<td class=\"age\">";
+      print readableTime(time() - $date, 0) if $date;
+      print "</td>\n<td class=\"author\">", urlize_author(htmlquote($author)) if $show_author;
+      print "</td>\n<td class=\"log\">";
+
+      if ($log) {
+        print htmlify(substr($log, 0, $shortLogLen), $allow_dir_extra);
+        print '...' if (length $log > 80);
+      }
+      print "</td>\n</tr>";
+      $dirrow++;
+    }
+    print "\n";
+  }
+
+  print "</table>\n";
+
+  if ((my $num = scalar(@unreadable)) && ! $input{hidenonreadable}) {
+    printf(<<EOF, $num, htmlquote(join(', ', @unreadable)));
+<p>
+ <b>NOTE:</b> The following %d unreadable files were ignored:<br />
+ <em>%s</em>
+</p>
+EOF
+  }
+
+  if ($filesexists && !$filesfound) {
+    my $currtag = defined($input{only_with_tag}) ?
+      sprintf(' (%s)', htmlquote($input{only_with_tag})) : '';
+    printf(<<EOF, $filesexists, $currtag);
+<p>
+ <b>NOTE:</b> There are %d files, but none matches the current tag%s.
+</p>
+EOF
+  }
+
+  if ($input{only_with_tag} && (!%tags || !$tags{$input{only_with_tag}})) {
+    %tags = %alltags;
+  }
+
+  if (scalar %tags
+      || $input{only_with_tag}
+      || $edit_option_form
+      || defined($input{options}))
+  {
+    print "<hr />\n";
+  }
+
+  if (scalar %tags || $input{only_with_tag}) {
+    print "<form method=\"get\" action=\"./\">\n<p>\n";
+    foreach my $var (@stickyvars) {
+      printf("<input type=\"hidden\" name=\"$var\" value=\"%s\" />\n",
+             htmlquote($input{$var}))
+        if (defined($input{$var})
+            && (!defined($DEFAULTVALUE{$var})
+                || $input{$var} ne $DEFAULTVALUE{$var})
+            && $var ne 'only_with_tag');
+    }
+    printf(<<EOF, ($use_java_script ? ' onchange="this.form.submit()"' : ''));
+<span class="nowrap">
+<label for="only_with_tag" accesskey="T">Show only files with tag:
+<select id="only_with_tag" name="only_with_tag"%s>
+<option value="">All tags / default branch</option>
+EOF
+    foreach my $tag (reverse sort { lc $a cmp lc $b } keys %tags) {
+      my $selected =
+        defined($input{only_with_tag}) && $input{only_with_tag} eq $tag;
+      printf("<option%s>%s</option>\n",
+             $selected ? ' selected="selected"' : '',
+             htmlquote($tag));
+    }
+    printf(<<EOF, htmlquote($where));
+</select>
+</label></span> <span class="nowrap">
+<label for="path" accesskey="P">Module path or alias:
+<input type="text" id="path" name="path" value="%s" size="15" /></label>
+</span>
+<input type="submit" value="Go" accesskey="G" />
+</p>
+</form>
+EOF
+  }
+
+  if ($allow_tar && $filesfound) {
+    my ($basefile) = ($where =~ m,(?:.*/)?([^/]+),);
+    my $havetar = $CMD{tar} && $CMD{gzip};
+    my $havezip = $CMD{zip};
+    if (defined($basefile) && $basefile ne '' && ($havetar || $havezip)) {
+      my $q = ($query ? "$query;" : '?') . 'tarball=1';
+      print "<hr />\n",
+        '<div style="text-align: center">Download this directory in ';
+      # Mangle the filename so browsers show a reasonable filename to download.
+      my @types = ();
+      $basefile = uri_escape($basefile);
+      push(@types, &link('tarball', "$basefile.tar.gz$q")) if $havetar;
+      push(@types, &link('zip archive', "$basefile.zip$q")) if $havezip;
+      print join(' or ', @types), "</div>\n";
+    }
+  }
+
+  if ($edit_option_form || defined($input{options})) {
+
+    print <<EOF;
+<form method="get" action="./">
+<fieldset>
+<legend>General options</legend>
+<input type="hidden" name="copt" value="1" />
+EOF
+    # -- gforge patch --
+    # The cvsroot parameter is always required for gforge in order to
+    # get the group_id. Also the commented next line did not seems to
+    # work, was showing always "gforge" as cvsroot
+    #if ($cvstree ne $cvstreedefault) {
+    #  print "<input type=\"hidden\" name=\"cvsroot\" value=\"$cvstree\" />\n";
+    #}
+    printf("<input type=\"hidden\" name=\"cvsroot\" value=\"%s\" />\n",
+             htmlquote($input{'cvsroot'}));
+    # -- gforge patch --
+    print <<EOF;
+<table summary="General options">
+<tr>
+<td class="opt-label">
+<label for="sortby" accesskey="F">Sort files by:</label>
+</td>
+<td class="opt-value">
+<select id="sortby" name="sortby">
+<option value="">File</option>
+EOF
+    print "<option", $bydate ? ' selected="selected"' : '',
+      " value=\"date\">Age</option>\n";
+    print "<option", $byauthor ? ' selected="selected"' : '',
+      " value=\"author\">Author</option>\n"
+        if $show_author;
+    print "<option", $byrev ? ' selected="selected"' : '',
+      " value=\"rev\">Revision</option>\n";
+    print "<option", $bylog ? ' selected="selected"' : '',
+      " value=\"log\">Log message</option>\n";
+    print <<EOF;
+</select>,
+<label for="ignorecase" accesskey="I">case-insensitive:
+EOF
+    print '<input id="ignorecase" name="ignorecase" type="checkbox"',
+      $input{ignorecase} ? ' checked="checked"' : '',
+        " value=\"1\" /></label>\n";
+    print <<EOF;
+</td>
+<td class="opt-label">
+<label for="hideattic" accesskey="A">Hide files in Attic:</label>
+</td>
+<td class="opt-value">
+EOF
+    print '<input id="hideattic" name="hideattic" type="checkbox"',
+      $input{hideattic} ? ' checked="checked"' : '', ' value="1" />';
+    print <<EOF;
+</td>
+</tr>
+<tr>
+<td class="opt-label">
+<label for="logsort" accesskey="L">Sort log by:</label>
+</td>
+<td class="opt-value">
+EOF
+    printLogSortSelect(0);
+    print <<EOF;
+</td>
+<td class="opt-label">
+<label for="ln" accesskey="N">Show line numbers:</label>
+</td>
+<td class="opt-value">
+EOF
+    print '<input id="ln" name="ln" type="checkbox"',
+      $input{ln} ? ' checked="checked"' : '', " value=\"1\" />\n";
+    print <<EOF;
+</td>
+</tr>
+<tr>
+<td class="opt-label">
+<label for="f" accesskey="D">Diff format:</label>
+</td>
+<td>
+EOF
+    printDiffSelect(0);
+    print <<EOF;
+</td>
+<td colspan="2" class="opt-label">
+<input type="submit" value="Change Options" accesskey="C" />
+</td>
+</tr>
+</table>
+</fieldset>
+</form>
+EOF
+  }
+  html_footer();
+}
+
+###############################
+# View Files
+###############################
+elsif (-f $fullname . ',v') {
+
+  if (defined($input{rev}) || $doCheckout) {
+    &doCheckout($fullname, $input{rev});
+    gzipclose();
+    exit;
+  }
+
+  if (defined($input{annotate}) && $allow_annotate) {
+    &doAnnotate($input{annotate});
+    gzipclose();
+    exit;
+  }
+
+  if (defined($input{r1}) && defined($input{r2})) {
+    &doDiff($fullname,  $input{r1},  $input{tr1},
+            $input{r2}, $input{tr2}, $input{f});
+    gzipclose();
+    exit;
+  }
+
+  if ($allow_cvsgraph && $input{graph}) {
+    if ($input{makeimage}) {
+      doGraph();
+    } else {
+      doGraphView();
+    }
+    gzipclose();
+    exit;
+  }
+
+  &doLog($fullname);
+
+  ##############################
+  # View Diff
+  ##############################
+} elsif ($fullname =~ s/\.diff$//
+         && -f $fullname . ',v' && $input{r1} && $input{r2})
+{
+
+  # $where-diff-removal if 'cvs rdiff' is used
+  # .. but 'cvs rdiff'doesn't support some options
+  # rcsdiff does (-w and -p), so it is disabled
+  # $where =~ s/\.diff$//;
+
+  # Allow diffs using the ".diff" extension so that browsers that default
+  # to the filename in the URL when saving don't save diffs as eg. foo.c.
+  &doDiff($fullname,  $input{r1},  $input{tr1},
+          $input{r2}, $input{tr2}, $input{f});
+  gzipclose();
+  exit;
+
+} elsif (do { (my $tmp = $fullname) =~ s|/([^/]+)$|/Attic/$1|; -f "$tmp,v" }) {
+  # The file has been removed and is in the Attic.
+  # Send a redirect pointing to the file in the Attic.
+  (my $newplace = $scriptwhere) =~ s|/([^/]+)$|/Attic/$1|;
+  if ($ENV{QUERY_STRING} ne "") {
+    redirect("$newplace?$ENV{QUERY_STRING}");
+  } else {
+    redirect($newplace);
+  }
+  exit;
+
+} elsif (0 && (my @files = &safeglob($fullname . ",v"))) {
+  http_header("text/plain");
+  print "You matched the following files:\n";
+  print join ("\n", @files);
+
+  # Find the tags from each file
+  # Display a form offering diffs between said tags
+} else {
+
+  # Assume it's a module name with a potential path following it.
+  my $module;
+  my $xtra = (($module = $where) =~ s|(/.*)||) ? $1 : '';
+
+  # Is there an indexed version of modules?
+  my $fh = do { local (*FH); };
+  if (open($fh, catfile($cvsroot, 'CVSROOT', 'modules'))) {
+    while (<$fh>) {
+      if (/^(\S+)\s+(\S+)/o
+          && $module eq $1
+          && $module ne $2
+          && -d "$cvsroot/$2")
+      {
+        close($fh);
+        redirect("$scriptname/$2$xtra$query");
+      }
+    }
+    close($fh);
+  }
+  fatal("404 Not Found", '%s: no such file or directory', $where);
+}
+
+gzipclose();
+
+## End MAIN
+
+
+sub printDiffSelect($)
+{
+  my ($use_java_script) = @_;
+
+  print '<select id="f" name="f"';
+  print ' onchange="this.form.submit()"' if $use_java_script;
+  print ">\n";
+
+  for my $difftype (@DIFFTYPES) {
+    printf("<option value=\"%s\"%s>%s</option>\n",
+           $difftype, $input{f} eq $difftype ? ' selected="selected"' : '',
+           "\u$DIFFTYPES{$difftype}{descr}");
+  }
+
+  print "</select>";
+}
+
+
+sub printDiffSelectStickyVars()
+{
+  while (my ($key, $val) = each %input) {
+    next if ($key eq 'f');
+    next if (defined($DEFAULTVALUE{$key}) && $DEFAULTVALUE{$key} eq $val);
+    print "<input type=\"hidden\" name=\"", htmlquote($key), "\" value=\"",
+      htmlquote($val), "\" />\n";
+  }
+}
+
+
+sub printLogSortSelect($)
+{
+  my ($use_java_script) = @_;
+
+  print '<select id="logsort" name="logsort"';
+  print ' onchange="this.form.submit()"' if $use_java_script;
+  print ">\n";
+
+  for my $sortkey (@LOGSORTKEYS) {
+    printf("<option value=\"%s\"%s>%s</option>\n",
+           $sortkey, $logsort eq $sortkey ? ' selected="selected"' : '',
+           "\u$LOGSORTKEYS{$sortkey}{descr}");
+  }
+
+  print "</select>";
+}
+
+
+#
+# Find the last modified, version controlled files in the given directories.
+# Compares solely based on modification timestamps.  Files in the returned list
+# are without the ,v suffix, and unreadable files have been filtered out.
+#
+sub findLastModifiedSubdirs(@)
+{
+  my (@dirs) = @_;
+
+  my @files;
+  foreach my $dirname (@dirs) {
+    next if ($dirname eq curdir() || $dirname eq updir());
+    my $dir = catdir($fullname, $dirname);
+    next if (!-d $dir);
+
+    my $dh = do { local (*DH); };
+    opendir($dh, $dir) or next;
+    my (@filenames) = grep(!forbidden(catfile($dir, $_)), readdir($dh));
+    closedir($dh);
+
+    my $lastmod     = undef;
+    my $lastmodtime = undef;
+    foreach my $filename (@filenames) {
+      ($filename) =
+        (catfile($dirname, $filename) =~ VALID_PATH) or next; # untaint
+      my ($file) = catfile($fullname, $filename);
+      next if ($filename !~ /,v$/o || !-f $file || !-r _);
+      my $modtime = -M _;
+      if (!defined($lastmod) || $modtime < $lastmodtime) {
+        ($lastmod    = $filename) =~ s/,v$//;
+        $lastmodtime = $modtime;
+      }
+    }
+    push(@files, $lastmod) if (defined($lastmod));
+  }
+  return @files;
+}
+
+
+sub htmlify_sub(&$)
+{
+  (my $proc, local $_) = @_;
+  my @a = split(m|(<a [^>]+>[^<]*</a>)|i);
+  my $linked;
+  my $result = '';
+
+  while (($_, $linked) = splice(@a, 0, 2)) {
+    &$proc();
+    $result .= $_      if defined($_);
+    $result .= $linked if defined($linked);
+  }
+
+  return $result;
+}
+
+
+sub htmlify($;$)
+{
+  (local $_, my $extra) = @_;
+
+  $_ = htmlquote($_);
+
+  # get URL's as link
+  s{
+    ((https?|ftp)://.+?)([\s\']|&(quot|[lg]t);)
+   }{
+     &link($1, htmlunquote($1)) . $3
+   }egx;
+
+  # get e-mails as link
+  $_ = htmlify_sub {
+    s<
+      ([\w+=\-.!]+@[\w\-]+(?:\.[\w\-]+)+)
+     ><
+       &link($1, "mailto:$1")
+     >egix;
+  } $_;
+
+  if ($extra) {
+
+    # get PR #'s as link: "PR#nnnn" "PR: nnnn, ..." "PR nnnn, ..." "bin/nnnn"
+    if (defined($prcgi) && defined($re_prkeyword)) {
+      my $prev;
+
+      do {
+        $prev = $_;
+
+        $_ = htmlify_sub {
+          s{
+            (\b$re_prkeyword[:\#]?\s*
+             (?:
+              \#?
+              \d+[,\s]\s*
+             )*
+             \#?)
+            (\d+)\b
+           }{
+             $1 . &link($2, sprintf($prcgi, $2))
+           }egix;
+        } $_;
+      } while ($_ ne $prev);
+
+      if (defined($re_prcategories)) {
+        $_ = htmlify_sub {
+          s{
+            (\b$re_prcategories/(\d+)\b)
+           }{
+             &link($1, sprintf($prcgi, $2))
+           }egox;
+        } $_;
+      }
+    }
+
+    # get manpage specs as link: "foo.1" "foo(1)"
+    if (defined($mancgi)) {
+      $_ = htmlify_sub {
+        s{
+          (
+           \b ( \w[\w+\-.]* (?: ::\w[\w+\-.]*)* )
+           (?:
+            \( ([0-9n]) \) \B
+            |
+            \. ([0-9n]) \b
+           )
+          )
+         }{
+            my($text, $name, $section) = ($1, $2, defined($3) ? $3 : $4);
+            ($name =~ /[A-Za-z]/ && $name !~ /\.(:|$)/)
+             ? &link($text, sprintf($mancgi, $section, uri_escape($name)))
+              : $text;
+         }egx;
+      } $_;
+    }
+  }
+
+  return $_;
+}
+
+
+sub spacedHtmlText($;$)
+{
+  (local $_, my $ts) = @_;
+  return '' unless defined($_);
+  $ts ||= $tabstop;
+
+  # Cut trailing spaces and tabs
+  s/[ \t]+$//;
+
+  if (defined($ts)) {
+
+    # Expand tabs
+    1 while s/(.*)(\t+)/' ' x (length($2) * $ts - length($1) % $ts)/e;
+  }
+
+  # replace <tab> and <space> (\001 is to protect us from htmlify)
+  # gzip can make excellent use of this repeating pattern :-)
+  if ($hr_breakable) {
+
+    # make every other space 'breakable'
+    s/  / \001nbsp;/g;    # 2 * <space>
+                          # leave single space as it is
+  } else {
+    s/ /\001nbsp;/g;
+  }
+
+  $_ = htmlify($_, $allow_source_extra);
+
+  # unescape
+  y/\001/&/;
+
+  return $_;
+}
+
+
+# Note that this doesn't htmlquote the first argument...
+sub link($$)
+{
+  my ($name, $url) = @_;
+  return sprintf('<a href="%s">%s</a>', htmlquote($url), $name);
+}
+
+
+sub revcmp($$)
+{
+  my ($rev1, $rev2) = @_;
+
+  # make no comparison for a tag or a branch
+  return 0 if $rev1 =~ /[^\d.]/ || $rev2 =~ /[^\d.]/;
+
+  my (@r1) = split(/\./, $rev1);
+  my (@r2) = split(/\./, $rev2);
+  my ($a, $b);
+
+  while (($a = shift(@r1)) && ($b = shift(@r2))) {
+    return $a <=> $b unless ($a == $b);
+  }
+  if (@r1) { return  1; }
+  if (@r2) { return -1; }
+  return 0;
+}
+
+
+sub fatal($$@)
+{
+  my ($errcode, $format, @args) = @_;
+  print "Status: $errcode\r\n";
+  html_header('Error');
+  print '<div id="error">Error: ',
+    sprintf($format, map(htmlquote($_), @args)), "</div>\n";
+  html_footer();
+  exit(1);
+}
+
+
+#
+# Sends a redirect to the given URL.
+#
+sub redirect($;$)
+{
+  my ($url, $permanent) = @_;
+  my ($status, $text);
+  if ($permanent) {
+    $status = '301';
+    $text   = 'Moved Permanently';
+  } else {
+    $status = '302';
+    $text   = 'Found';
+  }
+  print "Status: $status $text\r\n", "Location: $url\r\n";
+  html_header($text);
+  print "<p>This document has moved ", &link('here', $url), ".</p>\n";
+  html_footer();
+  exit(1);
+}
+
+
+sub safeglob($)
+{
+  my ($filename) = @_;
+
+  (my $dirname = $filename) =~ s|/[^/]+$||;
+  $filename =~ s|.*/||;
+
+  my @results;
+  my $dh = do { local (*DH); };
+  if (opendir($dh, $dirname)) {
+    my $glob = $filename;
+    my $t;
+
+    #   transform filename from glob to regex.  Deal with:
+    #   [, {, ?, * as glob chars
+    #   make sure to escape all other regex chars
+    $glob =~ s/([\.\(\)\|\+])/\\$1/g;
+    $glob =~ s/\*/.*/g;
+    $glob =~ s/\?/./g;
+    $glob =~ s/{([^}]+)}/($t = $1) =~ s-,-|-g; "($t)"/eg;
+    $glob = qr/^$glob$/;
+
+    foreach (readdir($dh)) {
+      if ($_ =~ $glob && $_ =~ VALID_PATH) {
+        push(@results, catfile($dirname, $1)); # untaint
+      }
+    }
+    closedir($dh);
+  }
+
+  return @results;
+}
+
+
+#
+# Searches @command_path for the given executable file.
+#
+sub search_path($)
+{
+  my ($command) = @_;
+  for my $d (@command_path) {
+    my $cmd = catfile($d, $command);
+    return $cmd if (-x $cmd && !-d _);
+  }
+  return '';
+}
+
+
+#
+# Gets the enscript(1) highlight mode corresponding to the given filename,
+# or undef if unsupported.
+#
+sub getEnscriptHL($)
+{
+  return undef unless $allow_enscript;
+  my ($filename) = @_;
+  while (my ($hl, $regex) = each %enscript_types) {
+    return $hl if ($filename =~ $regex);
+  }
+  return undef;
+}
+
+
+#
+# Gets the MIME type for the given file name.
+#
+sub getMimeType($;$)
+{
+  my ($fullname, $binary) = @_;
+  $binary = ($keywordsubstitution && $keywordsubstitution =~ /b/)
+    unless defined($binary);
+
+  (my $suffix = $fullname) =~ s/^.*\.([^.]*)$/$1/;
+
+  my $mimetype = $MTYPES{$suffix};
+  $mimetype  ||= $MimeTypes->mimeTypeOf($fullname) if defined($MimeTypes);
+
+  if (!$mimetype && $suffix ne '*' && -f $mime_types && -r _) {
+    my $fh = do { local (*FH); };
+    if (open($fh, $mime_types)) {
+      my $re = sprintf('^\s*(\S+\/\S+)\s.+\b%s\b', quotemeta($suffix));
+      $re = qr/$re/;
+      while (my $line = <$fh>) {
+        if ($line =~ $re) {
+          $mimetype = $1;
+          $MTYPES{$suffix} = $mimetype;
+          last;
+        }
+      }
+      close($fh);
+    } else {
+      warn("Can't open MIME types file $mime_types for reading: $!");
+    }
+  }
+
+  $mimetype ||= $MTYPES{'*'};
+  $mimetype ||= $binary ? 'application/octet-stream' : 'text/plain';
+  return $mimetype;
+}
+
+
+###############################
+# read first lines like head(1)
+###############################
+sub head($;$)
+{
+  my ($fh, $linecount) = @_;
+  $linecount ||= 10;
+
+  my @buf;
+  if ($linecount > 0) {
+    for (my $i = 0; !eof($fh) && $i < $linecount; $i++) {
+      push @buf, scalar <$fh>;
+    }
+  } else {
+    @buf = <$fh>;
+  }
+  return @buf;
+}
+
+
+###############################
+# scan vim and Emacs directives
+###############################
+sub scan_directives(@)
+{
+  my $ts = undef;
+
+  for (@_) {
+    $ts = $1 if /\b(?:ts|tabstop|tab-width)[:=]\s*([1-9]\d*)\b/;
+  }
+
+  ('tabstop' => $ts);
+}
+
+
+sub openOutputFilter()
+{
+  return unless $output_filter;
+
+  open(STDOUT, "|-") and return;
+
+  # child of child
+  open(STDERR, '>', devnull());
+  exec($output_filter) or exit -1;
+}
+
+
+###############################
+# show Annotation
+###############################
+sub doAnnotate($)
+{
+  my ($rev) = @_;
+  (my $pathname = $where) =~ s|((?<=/)Attic/)?[^/]*$||;
+  (my $filename = $where) =~ s|^.*/||;
+
+  # This annotate version is based on the cvs annotate-demo Perl script by
+  # Cyclic Software.  It was written by Cyclic Software,
+  # http://www.cyclic.com/, and is in the public domain.
+  # We could abandon the use of rlog, rcsdiff and co using
+  # the cvs server in a similiar way one day (..after rewrite).
+
+  local (*CVS_IN, *CVS_OUT);
+  my $annotate_err;
+  my ($h, $err) =
+    startproc([ $CMD{cvs}, @annotate_options, 'server' ],
+              '<pipe', \*CVS_IN, '>pipe', \*CVS_OUT,
+              '2>', \$annotate_err);
+  fatal('500 Internal Error',
+        'Annotate failure (exit status %s), output: <pre>%s</pre>',
+        $? >> 8 || -1, $err)
+    unless $h;
+
+  # OK, first send the request to the server.  A simplified example is:
+  #     Root /home/kingdon/zwork/cvsroot
+  #     Argument foo/xx
+  #     Directory foo
+  #     /home/kingdon/zwork/cvsroot/foo
+  #     Directory .
+  #     /home/kingdon/zwork/cvsroot
+  #     annotate
+  # although as you can see there are a few more details.
+
+  print CVS_IN "Root $cvsroot\n";
+  print CVS_IN
+    "Valid-responses ok error Valid-requests Checked-in Updated Merged Removed M E\n";
+
+  # Don't worry about sending valid-requests, the server just needs to
+  # support "annotate" and if it doesn't, there isn't anything to be done.
+  print CVS_IN "UseUnchanged\n";
+  print CVS_IN "Argument -r\n";
+  print CVS_IN "Argument $rev\n";
+  print CVS_IN "Argument $where\n";
+
+  # The protocol requires us to fully fake a working directory (at
+  # least to the point of including the directories down to the one
+  # containing the file in question).
+  # So if $where is "dir/sdir/file", then dirs will be ("dir","sdir","file")
+  my $path = '';
+  foreach my $dir (split('/', $where)) {
+
+    if ($path eq "") {
+      # In our example, $dir is "dir".
+      $path = $dir;
+    } else {
+      print CVS_IN "Directory $path\n";
+      print CVS_IN "$cvsroot/$path\n";
+
+      # In our example, $_ is "sdir" and $path becomes "dir/sdir"
+      # And the next time, "file" and "dir/sdir/file" (which then gets
+      # ignored, because we don't need to send Directory for the file).
+      $path .= "/$dir";
+    }
+  }
+  undef $path;
+
+  # And the last "Directory" before "annotate" is the top level.
+  print CVS_IN "Directory .\n";
+  print CVS_IN "$cvsroot\n";
+
+  print CVS_IN "annotate\n";
+
+  # OK, we've sent our command to the server.  Thing to do is to
+  # close the writer side and get all the responses.
+  if (!close(CVS_IN)) {
+    $h->finish();
+    fatal('500 Internal Error',
+          'Annotate failure (exit status %s): <code>%s</code>, output: ' .
+          '<pre>%s</pre>', $? >> 8, $!, $annotate_err);
+  }
+
+  navigateHeader($scriptwhere, $pathname, $filename, $rev, 'annotate');
+
+  print '<h3 style="text-align: center">Annotation of ',
+    htmlquote("$pathname$filename"), ", revision $rev</h3>\n";
+
+  # Ready to get the responses from the server.
+  # For example:
+  #     E Annotations for foo/xx
+  #     E ***************
+  #     M 1.3          (kingdon  06-Sep-97): hello
+  #     ok
+  my ($lineNr) = 0;
+  my ($oldLrev, $oldLusr) = ("", "");
+  my ($revprint, $usrprint);
+
+  if ($annTable) {
+    print <<EOF;
+<table style="border: none" cellspacing="0" cellpadding="0" summary="Annotation">
+EOF
+  } else {
+    print "<pre>";
+  }
+
+  # prefetch several lines
+  my @buf = head(*CVS_OUT);
+
+  my %d = scan_directives(@buf);
+
+  while (@buf || !eof(*CVS_OUT)) {
+
+    $_ = @buf ? shift @buf : <CVS_OUT>;
+    my @words = split;
+
+    # Adding one is for the (single) space which follows $words[0].
+    my $rest = substr($_, length($words[0]) + 1);
+    if ($words[0] eq "E") {
+      next;
+    } elsif ($words[0] eq "M") {
+      $lineNr++;
+      (my $lrev = substr($_, 2,  13)) =~ y/ //d;
+      (my $lusr = substr($_, 16, 9))  =~ y/ //d;
+      my $line = substr($_, 36);
+      my $isCurrentRev = ($rev eq $lrev);
+
+      # we should parse the date here ..
+      if ($lrev eq $oldLrev) {
+        $revprint = sprintf('%-8s', '');
+      } else {
+        $revprint = sprintf('%-8s', $lrev);
+        $revprint =~ s|(\S+)|&link($1, uri_escape($filename)."$query#rev$1")|e;
+        $oldLusr = '';
+      }
+
+      $usrprint = ($lusr eq $oldLusr) ? '' : $lusr;
+      $oldLrev = $lrev;
+      $oldLusr = $lusr;
+
+      print $is_textbased ? '<b>' : '<span class="current-rev">'
+        if $isCurrentRev;
+
+      $usrprint = sprintf('%-8s', $usrprint);
+      printf '%s%s %s %4d:', $revprint, $isCurrentRev ? '!' : ' ',
+        htmlquote($usrprint), $lineNr;
+      print spacedHtmlText($line, $d{tabstop});
+
+      print $is_textbased ? '</b>' : '</span>' if $isCurrentRev;
+
+    } elsif ($words[0] eq "ok") {
+
+      # We could complain about any text received after this, like the
+      # CVS command line client.  But for simplicity, we don't.
+    } elsif ($words[0] eq "error") {
+      fatal("500 Internal Error",
+            'Error occured during annotate: <b>%s</b>', $_);
+    }
+  }
+  $h->finish();
+
+  if ($annTable) {
+    print "</table>";
+  } else {
+    print "</pre>";
+  }
+  html_footer();
+}
+
+###############################
+# make Checkout
+###############################
+sub doCheckout($$)
+{
+  my ($fullname, $rev) = @_;
+  $rev = undef if ($rev && ($rev eq '.'));
+
+  # Start resolving whether we will do a markup view or not.
+  my $do_markup = undef;
+  my $want_type = $input{'content-type'};
+
+  # No markup if markup disallowed.
+  $do_markup = 0 unless $allow_markup;
+
+  # No markup if checkout magic cookie in URL.
+  $do_markup = 0 if (!defined($do_markup) && $doCheckout);
+
+  # Do markup if explicitly asked using cvsweb-markup content type.  If the
+  # asked content type is anything else, no markup.
+  if (!defined($do_markup) && $want_type) {
+    if ($want_type =~ CVSWEBMARKUP) {
+      $want_type = undef;
+      $do_markup = 1;
+    } else {
+      $do_markup = 0;
+    }
+  }
+
+  # Ok, if $do_markup is still undefined, we know that a download has not been
+  # explicitly asked.  For the last check further down below we'll need to
+  # know if the file is binary, and possibly run a log on it.
+  my $needlog = $do_markup || $use_moddate;
+
+  my $moddate = undef;
+  my $revopt;
+  if (defined($rev)) {
+    $revopt = "-r$rev";
+    if ($needlog) {
+      readLog($fullname, $rev);
+      $moddate = $date{$rev};
+    }
+  } else {
+    $revopt = "-rHEAD";
+    if ($needlog) {
+      readLog($fullname);
+      $moddate = $date{$symrev{HEAD}};
+    }
+  }
+
+  my $cr = abs_path($cvsroot) || $cvsroot;
+  # abs_path() taints when run as a CGI...
+  if ($cr =~ VALID_PATH) {
+    $cr = $1;
+  } else {
+    fatal('500 Internal Error', 'Illegal CVS root: <code>%s</code>', $cr);
+  }
+  # Use abs_path() to work around a bug of cvs -p; expand symlinks if we can.
+  my @cmd = ($CMD{cvs}, @cvs_options, '-d', $cr, 'co', '-p', $revopt, $where);
+
+  local (*CVS_OUT, *CVS_ERR);
+  my ($h, $err) =
+    startproc(\@cmd, \"", '>pipe', \*CVS_OUT, '2>pipe', \*CVS_ERR);
+  fatal('500 Internal Error',
+        'Checkout failure (exit status %s), output: <pre>%s</pre>',
+        $? >> 8 || -1, $err)
+    unless $h;
+
+  if (eof(CVS_ERR)) {
+    $h->finish();
+    fatal("404 Not Found", '%s is not (any longer) pertinent', $where);
+  }
+
+  #===================================================================
+  #Checking out squid/src/ftp.c
+  #RCS:  /usr/src/CVS/squid/src/ftp.c,v
+  #VERS: 1.1.1.28.6.2
+  #***************
+
+  # Parse CVS header
+  my ($revision, $filename, $cvsheader);
+  $filename = "";
+  while (<CVS_ERR>) {
+    last if (/^\*\*\*\*/);
+    $revision = $1 if (/^VERS: (.*)$/);
+
+    if (/^Checking out (.*)$/) {
+      ($filename = $1) =~ s|^\./+||;
+    }
+    $cvsheader .= $_;
+  }
+  close(CVS_ERR);
+
+  if ($filename ne $where) {
+    $h->finish();
+    fatal("500 Internal Error",
+          'Unexpected output from cvs co: <pre>%s</pre> ' .
+          '(expected "<code>%s</code>" but got "<code>%s</code>") for %s %s -d %s co -p %s %s)',
+          $cvsheader, $where, $filename,$CMD{cvs}, at cvs_options,$cr,$revopt,$where);
+  }
+
+  # Last checks whether we'll do markup or not.
+  my $isbin = $keywordsubstitution && $keywordsubstitution =~ /b/;
+  my $mimetype = getMimeType($fullname, $isbin);
+
+  # If we still are not sure whether to do markup or not:
+  # if the MIME type is "viewable" or this is not a binary file, do.
+  $do_markup = !$isbin || viewable($mimetype) unless defined($do_markup);
+
+  if ($do_markup) {
+
+    # If this is something we'll be linking to in the markup view, we are
+    # done with this particular output from "cvs co" and must discard it.
+    my $linked = $mimetype =~ m{^image/|application/pdf$}i;
+    if ($linked) {
+      close(CVS_OUT);
+      $h->finish();
+    }
+
+    # Here we know the last modified date, but don't know if tags have been
+    # added afterwards (those are shown in the markup view): no last-modified.
+    cvswebMarkup(\*CVS_OUT, $fullname, $revision, $isbin, $mimetype, $needlog);
+
+    $h->finish() unless $linked;
+
+  } else {
+    http_header($want_type || $mimetype, $moddate);
+    local $/ = undef;
+    print <CVS_OUT>;
+    $h->finish();
+  }
+}
+
+
+sub cvswebMarkup($$$$$$;$)
+{
+  my ($filehandle, $fullname, $rev, $isbin, $mimetype, $logged, $mod) = @_;
+
+  (my $pathname = $where) =~ s|((?<=/)Attic/)?[^/]*$||;
+  (my $filename = $where) =~ s|^.*/||;
+
+  navigateHeader($scriptwhere, $pathname, $filename, $rev, 'view', $mod);
+
+  print <<EOF;
+<hr />
+<div class="log-markup">
+File:&nbsp;
+EOF
+  print &clickablePath($where, 1), "<br />\n";
+
+  if ($show_log_in_markup) {
+    readLog($fullname) unless $logged; #,$rev);
+    printLog($rev, $mimetype, $isbin);
+  } else {
+    print "Revision: <b>$rev</b><br />\n";
+    print 'Tag: ', htmlquote($input{only_with_tag}), "<br />\n"
+      if $input{only_with_tag};
+  }
+  print "</div>\n<hr />";
+  my $url = download_url(uri_escape($filename), $rev, $mimetype);
+
+  if ($mimetype =~ m|^image/|i) {
+    printf '<img src="%s" alt="%s" /><br />',
+      $url . $barequery, htmlquote($filename);
+  } elsif (lc($mimetype) eq 'application/pdf') {
+    printf '<embed src="%s" width="100%%" height="100%%" /><br />',
+      $url . $barequery;
+  } else {
+
+    print "<pre>\n";
+    my $linenumbers = $input{ln} || 0;
+
+    if (my $enscript_hl = getEnscriptHL($filename)) {
+      doEnscript($filehandle, $enscript_hl, $linenumbers);
+
+    } else {
+      my $ln  = 0;
+      my @buf = ();
+      my $ts  = undef;
+
+      if ($preformat_in_markup) {
+        # prefetch several lines
+        @buf = head($filehandle);
+        my %d = scan_directives(@buf);
+        $ts = $d{tabstop};
+      }
+
+      while (@buf || !eof($filehandle)) {
+        $_ = @buf ? shift @buf : <$filehandle>;
+        if ($linenumbers) {
+          $ln++;
+          printf '<a id="l%d" class="src">%5d: </a>', ($ln) x 2;
+        }
+        print $preformat_in_markup ? spacedHtmlText($_, $ts) : htmlquote($_);
+      }
+    }
+
+    print "</pre>\n";
+  }
+  html_footer();
+}
+
+
+sub viewable($)
+{
+  return shift =~ m{^((text|image)/|application/pdf)}i;
+}
+
+
+###############################
+# Show Colored Diff
+###############################
+sub doDiff($$$$$$)
+{
+  my ($fullname, $r1, $tr1, $r2, $tr2, $f) = @_;
+
+  if (forbidden($fullname)) {
+    fatal('403 Forbidden', 'Access to %s forbidden.', $where);
+  }
+
+  my ($rev1, $sym1);
+  if ($r1 =~ /([^:]+)(:(.+))?/) {
+    $rev1 = $1;
+    $sym1 = $3;
+  }
+  if ($r1 eq 'text') {
+    $rev1 = $tr1;
+    $sym1 = "";
+  }
+
+  my ($rev2, $sym2);
+  if ($r2 =~ /([^:]+)(:(.+))?/) {
+    $rev2 = $1;
+    $sym2 = $3;
+  }
+  if ($r2 eq 'text') {
+    $rev2 = $tr2;
+    $sym2 = "";
+  }
+
+  #
+  # rev1 and rev2 are now both numeric revisions.
+  # Thus we do a DWIM here and swap them if rev1 is after rev2.
+  # XXX should we warn about the fact that we do this?
+  if (&revcmp($rev1, $rev2) > 0) {
+    my ($tmp1, $tmp2) = ($rev1, $sym1);
+    ($rev1, $sym1) = ($rev2, $sym2);
+    ($rev2, $sym2) = ($tmp1, $tmp2);
+  }
+
+  my $mimetype = getMimeType($fullname);
+
+  #
+  #  Check for per-MIME type diff commands.
+  #
+  my $diffcmd = undef;
+  if (my $diffcmds = $DIFF_COMMANDS{lc($mimetype)}) {
+    if ($f =~ /^ext(\d*)$/) {
+      my $n = $1 || 0;
+      $diffcmd = $diffcmds->[$n];
+    }
+  }
+  if ($diffcmd && $diffcmd->{cmd} && $diffcmd->{name}) {
+
+    if ($diffcmd->{args} && ref($diffcmd->{args}) ne 'ARRAY') {
+      fatal('500 Internal Error',
+            'Configuration error: arguments to external diff tools must ' .
+            'be given as array refs.  See "<code>%s</code>" in ' .
+            '<code>%%DIFF_COMMANDS</code>.',
+            $diffcmd->{name});
+    }
+
+    (my $cvsname = $where) =~ s/\.diff$//;
+
+    # Create two temporary files with the two revisions
+    my $temp_fn1 = checkout_to_temp($cvsroot, $cvsname, $rev1);
+    my $temp_fn2 = checkout_to_temp($cvsroot, $cvsname, $rev2);
+
+    # Execute chosen diff binary.
+    local (*DIFF_OUT);
+    my @cmd = ($diffcmd->{cmd});
+    push(@cmd, @{$diffcmd->{args}}) if $diffcmd->{args};
+    push(@cmd, $temp_fn1, $temp_fn2);
+    my ($h, $err) = startproc(\@cmd, \"", '>pipe', \*DIFF_OUT);
+    if (!$h) {
+      unlink($temp_fn1);
+      unlink($temp_fn2);
+      fatal('500 Internal Error',
+            'Diff failure (exit status %s), output: <pre>%s</pre>',
+            $? >> 8 || -1, $err);
+    }
+
+    http_header($diffcmd->{type} || 'text/plain');
+    local $/ = undef;
+    print <DIFF_OUT>;
+    $h->finish();
+    unlink($temp_fn1);
+    unlink($temp_fn2);
+
+    exit;
+  }
+
+  #
+  # Normal CVS diff.
+  #
+
+  $f = $DEFAULTVALUE{f} || 'u' if ($f =~ /^ext\d*$/);
+  my $difftype = $DIFFTYPES{$f};
+  if (!$difftype) {
+    fatal("400 Bad arguments", 'Diff format %s not understood', $f);
+  }
+
+  my @difftype       = @{$difftype->{opts}};
+  my $human_readable = $difftype->{colored};
+
+  # Apply special diff options.  -p and -F are not available with side by side
+  # diffs and may cause problems with older (< 2.8) versions of diffutils if
+  # used with --side-by-side.
+  if ($showfunc && $f !~ /^s/) {
+    push(@difftype, '-p');
+    while (my ($re1, $re2) = each %funcline_regexp) {
+      if ($fullname =~ $re1) {
+        push(@difftype, '-F', $re2);
+        last;
+      }
+    }
+  }
+
+  if ($human_readable) {
+    push(@difftype, '-w')  if $hr_ignwhite;
+    push(@difftype, '-kk') if $hr_ignkeysubst;
+  }
+
+  my $fh = do { local (*FH); };
+  if (!open($fh, "-|")) {    # child
+    open(STDERR, ">&STDOUT");    # Redirect stderr to stdout
+    openOutputFilter();
+    exec($CMD{rcsdiff}, @rcsdiff_options, @difftype, "-r$rev1", "-r$rev2",
+         $fullname) or exit -1;
+  }
+
+  if ($human_readable) {
+    #
+    # Human readable diff.
+    #
+    human_readable_diff($fh, $rev2);
+    html_footer();
+    gzipclose();
+    exit;
+
+  } elsif ($f =~ /^([ucs])c$/) {
+    #
+    # Enscript colored diff.
+    #
+    my $hl = 'diff';
+    $hl .= $1 if ($1 eq 'u' || $1 eq 's');
+    (my $where_nd = $where)       =~ s/\.diff$//;
+    (my $pathname = $where_nd)    =~ s|((?<=/)Attic/)?[^/]*$||;
+    (my $filename = $where_nd)    =~ s|^.*/||;
+    (my $swhere   = $scriptwhere) =~ s|\.diff$||;
+    navigateHeader($swhere, $pathname, $filename, $rev2, 'diff');
+    printf(<<EOF, $where_nd, $rev1, $rev2);
+<h3 style="text-align: center">Diff for /%s between versions %s and %s</h3>
+<pre>
+EOF
+    doEnscript(\$fh, $hl, 0, 'cvsweb_diff');
+    print <<EOF;
+</pre>
+<hr style="width: 100%" />
+<form method="get" action="$scriptwhere">
+EOF
+    printDiffSelectStickyVars();
+    print 'Diff format: ';
+    printDiffSelect($use_java_script);
+    print "<input type=\"submit\" value=\"Show\" />\n</form>\n";
+    html_footer();
+    gzipclose();
+    exit;
+
+  } else {
+    #
+    # Plain diff.
+    #
+    http_header("text/plain");
+  }
+
+  #
+  #===================================================================
+  #RCS file: /home/ncvs/src/sys/netinet/tcp_output.c,v
+  #retrieving revision 1.16
+  #retrieving revision 1.17
+  #diff -c -r1.16 -r1.17
+  #*** /home/ncvs/src/sys/netinet/tcp_output.c     1995/11/03 22:08:08     1.16
+  #--- /home/ncvs/src/sys/netinet/tcp_output.c     1995/12/05 17:46:35     1.17
+  #
+  # Ideas:
+  # - nuke the stderr output if it's what we expect it to be
+  # - Add "no differences found" if the diff command supplied no output.
+  #
+  #*** src/sys/netinet/tcp_output.c     1995/11/03 22:08:08     1.16
+  #--- src/sys/netinet/tcp_output.c     1995/12/05 17:46:35     1.17 RELENG_2_1_0
+  # (bogus example, but...)
+  #
+  my ($f1, $f2);
+  if (grep { $_ eq '-u' } @difftype) {
+    $f1 = '---';
+    $f2 = '\+\+\+';
+  } else {
+    $f1 = '\*\*\*';
+    $f2 = '---';
+  }
+
+  while (<$fh>) {
+    if (m|^$f1 $cvsroot|o) {
+      s|$cvsroot/||o;
+      if ($sym1) {
+        chop;
+        $_ .= " $sym1\n";
+      }
+    } elsif (m|^$f2 $cvsroot|o) {
+      s|$cvsroot/||o;
+
+      if ($sym2) {
+        chop;
+        $_ .= " $sym2\n";
+      }
+    }
+    print $_;
+  }
+  close($fh);
+}
+
+
+###############################
+# Show Logs ..
+###############################
+sub getDirLogs($$@)
+{
+  my ($cvsroot, $dirname, @otherFiles) = @_;
+  my $tag = $input{only_with_tag};
+  my $DirName = catdir($cvsroot, $where);
+
+  my @files = &safeglob("$DirName/*,v");
+  push (@files, &safeglob("$DirName/Attic/*,v")) unless $input{hideattic};
+  foreach my $file (@otherFiles) {
+    push(@files, catfile($DirName, $file));
+  }
+
+  # Weed out unreadable files.
+  my $i = 0;
+  my @unreadable = ();
+  while ($i < scalar(@files)) {
+    # Note: last modified files from subdirs returned by
+    # findLastModifiedSubdirs() come without the ,v suffix so they're not
+    # found here, but have already been checked for readability.  *cough*
+    if (-r $files[$i] || !-e _) {
+      $i++;
+    } else {
+      push(@unreadable, splice(@files, $i, 1));
+    }
+  }
+
+  # If there are no files, we're done.
+  return @unreadable unless @files;
+
+  my @cmd = ($CMD{rlog});
+  # Can't use -r<tag> as '-' is allowed in tagnames,
+  # but misinterpreted by rlog.
+  push(@cmd, '-r') unless defined($tag);
+
+  my $fh = do { local (*FH); };
+  if (!open($fh, '-|')) {            # Child
+    open(STDERR, '>', devnull());    # Ignore rlog's complaints.
+    openOutputFilter();
+    if ($file_list_len && $file_list_len > 1) {
+      while (scalar(@files) > $file_list_len) {  # Process files in chunks.
+        system(@cmd, splice(@files, 0, $file_list_len)) == 0 or exit -1;
+      }
+    }
+    exec(@cmd, @files) or exit -1;
+  }
+  undef @cmd;
+
+  my $state = 'start';
+  my ($date, $branchpoint, $branch, $log, @filetags);
+  my ($rev, $revision, $revwanted, $filename, $head, $author, $keywordsubst);
+
+  while (<$fh>) {
+    if ($state eq "start") {
+
+      #Next file. Initialize file variables
+      $rev         = '';
+      $revwanted   = '';
+      $branch      = '';
+      $branchpoint = '';
+      $filename    = '';
+      $log         = '';
+      $revision    = '';
+      %symrev      = ();
+      @filetags    = ();
+      $keywordsubst= '';
+
+      #jump to head state
+      $state = "head";
+    }
+
+    again:
+
+    if ($state eq "head") {
+
+      #$rcsfile = $1 if (/^RCS file: (.+)$/); #not used (yet)
+
+      if (/^Working file: (.+)$/) {
+        $filename = $1;
+      } elsif (/^head: (.+)$/) {
+        $head = $1;
+      } elsif (/^branch: (.+)$/) {
+        $branch = $1;
+      } elsif (/^keyword substitution: (.+)$/) {
+        $keywordsubst = $1;
+      } elsif (/^symbolic names:/) {
+        $state = "tags";
+        ($branch = $head) =~ s/\.\d+$//
+          if $branch eq '';
+        $branch =~ s/(\d+)$/0.$1/;
+        $symrev{MAIN}  = $branch;
+        $symrev{HEAD}  = $branch;
+        $alltags{MAIN} = 1;
+        $alltags{HEAD} = 1;
+        push (@filetags, "MAIN", "HEAD");
+      } elsif ($_ =~ LOG_REVSEPR) {
+        $state = "log";
+        $rev   = '';
+        $date  = '';
+        $log   = '';
+
+        # Try to reconstruct the relative filename if RCS spits out a full path
+        $filename =~ s%^\Q$DirName\E/%%;
+      }
+      next;
+    }
+
+    if ($state eq "tags") {
+      if (/^\s+([^:]+):\s+([\d\.]+)\s*$/) {
+        push (@filetags, $1);
+        $symrev{$1}  = $2;
+        $alltags{$1} = 1;
+        next;
+      } elsif (/^\S/) {
+
+        if (defined($tag)) {
+          if (defined($symrev{$tag}) || $tag eq "HEAD") {
+            $revwanted    = $symrev{$tag eq "HEAD" ? "MAIN" : $tag};
+            ($branch      = $revwanted) =~ s/\b0\.//;
+            ($branchpoint = $branch)    =~ s/\.?\d+$//;
+            $revwanted    = '' if ($revwanted ne $branch);
+          } elsif ($tag ne "HEAD") {
+            $state = "skip";
+            next;
+          }
+        }
+
+        foreach my $tagfound (@filetags) {
+          $tags{$tagfound} = 1;
+        }
+        $state = "head";
+        goto again;
+      }
+    }
+
+    if ($state eq "log") {
+      if ($_ =~ LOG_REVSEPR || $_ =~ LOG_FILESEPR) {
+
+        # End of a log entry.
+        my $revbranch = $rev;
+        $revbranch =~ s/\.\d+$//;
+
+        if ($revwanted eq '' && $branch ne '' && $branch eq $revbranch
+            || !defined($tag))
+        {
+          $revwanted = $rev;
+        }
+
+        if ($revwanted ne ''
+            ? $rev eq $revwanted
+            : $branchpoint ne ''
+              ? $rev eq $branchpoint
+              : 0
+            && ($rev eq $head))
+        {    # Don't think head is needed here..
+          my @finfo = ($rev, $date, $log, $author, $filename, $keywordsubst);
+          (my $name = $filename) =~ s%/.*%%;
+          $fileinfo{$name} = [@finfo];
+          $state = "done" if ($rev eq $revwanted);
+        }
+        $rev  = '';
+        $date = '';
+        $log  = '';
+      } elsif ($date eq ''
+               && m|^date:\s+(\d+)/(\d+)/(\d+)\s+(\d+):(\d+):(\d+);|)
+      {
+        my $yr    = $1;
+        $yr      -= 1900 if ($yr > 100); # Damn 2-digit year routines :-)
+        $date     = timegm($6, $5, $4, $3, $2 - 1, $yr);
+        ($author) = /author: ([^;]+)/;
+        $state    = 'log';
+        $log      = '';
+        next;
+      } elsif ($rev eq '' && /^revision (\d+(?:\.\d+)+).*$/) {
+        $rev = $1;    # .*$ eats up the locker(lockers?) info, if any
+        next;
+      } else {
+        $log .= $_;
+      }
+    }
+
+    if ($_ =~ LOG_FILESEPR) {
+      $state = "start";
+      next;
+    }
+  }
+
+  my $linesread = $. || 0;
+  close($fh);
+
+  if ($linesread == 0) {
+    fatal('500 Internal Error',
+          'Failed to spawn GNU rlog on <em>"%s"</em>.<br /><br />Did you set the <b><code>@command_path</code></b> in your configuration file correctly? (Currently: "<code>%s</code>")',
+          htmlquote(join(', ', @files)), join(':', @command_path));
+  }
+
+  return @unreadable;
+}
+
+
+sub readLog($;$)
+{
+  my ($fullname, $revision) = @_;
+  my ($symnames, $head, $rev, $br, $brp, $branch, $branchrev);
+
+  $revision = defined($revision) ? "-r$revision" : '';
+
+  undef %symrev;
+  undef %revsym;
+  undef @allrevisions;
+  undef %date;
+  undef %author;
+  undef %state;
+  undef %difflines;
+  undef %log;
+  $keywordsubstitution = '';
+
+  my $fh = do { local (*FH); };
+  if (!open($fh, "-|")) {    # child
+  open(STDERR, '>', devnull());    # Ignore rlog's complaints.
+    if ($revision ne '') {
+      openOutputFilter();
+      exec($CMD{rlog}, $revision, $fullname) or exit -1;
+    } else {
+      openOutputFilter();
+      exec($CMD{rlog}, $fullname) or exit -1;
+    }
+  }
+
+  my $curbranch = undef;
+  while (<$fh>) {
+    if ($symnames) {
+      if (/^\s+([^:]+):\s+([\d\.]+)/) {
+        $symrev{$1} = $2;
+        next;
+      } else {
+        $symnames = 0;
+      }
+    }
+    if (/^head:\s+([\d\.]+)/) {
+      $head = $1;
+    } elsif (/^branch:\s+([\d\.]+)/) {
+      $curbranch = $1;
+    } elsif (/^symbolic names/) {
+      $symnames = 1;
+    } elsif (/^keyword substitution: (.+)$/) {
+      $keywordsubstitution = $1;
+    } elsif (/^-----/) {
+      last;
+    }
+  }
+  ($curbranch = $head) =~ s/\.\d+$// if (!defined($curbranch));
+
+  # each log entry is of the form:
+  # ----------------------------
+  # revision 3.7.1.1
+  # date: 1995/11/29 22:15:52;  author: fenner;  state: Exp;  lines: +5 -3
+  # log info
+  # ----------------------------
+
+  # For a locked revision, the first line after the separator 
+  # becomes smth like
+  # revision 9.19       locked by: vassilii;
+
+  logentry:
+
+  while ($_ !~ LOG_FILESEPR) {
+    $_ = <$fh>;
+    last logentry if (!defined($_));    # EOF
+    if (/^revision (\d+(?:\.\d+)+)/) {
+      $rev = $1;
+      unshift(@allrevisions, $rev);
+    } elsif ($_ =~ LOG_FILESEPR || $_ =~ LOG_REVSEPR) {
+      next logentry;
+    } else {
+
+      # The rlog output is syntactically ambiguous.  We must
+      # have guessed wrong about where the end of the last log
+      # message was.
+      # Since this is likely to happen when people put rlog output
+      # in their commit messages, don't even bother keeping
+      # these lines since we don't know what revision they go with
+      # any more.
+      next logentry;
+    }
+    $_ = <$fh>;
+    if (
+      m|^date:\s+(\d+)/(\d+)/(\d+)\s+(\d+):(\d+):(\d+);\s+author:\s+(\S+);\s+state:\s+(\S+);\s+(lines:\s+([0-9\s+-]+))?|
+      )
+    {
+      my $yr           = $1;
+      $yr             -= 1900 if ($yr > 100); # Damn 2-digit year routines :-)
+      $date{$rev}      = timegm($6, $5, $4, $3, $2 - 1, $yr);
+      $author{$rev}    = $7;
+      $state{$rev}     = $8;
+      $difflines{$rev} = $10;
+    } else {
+      fatal("500 Internal Error", 'Error parsing RCS output: %s', $_);
+    }
+
+  line:
+    while (<$fh>) {
+      next line if (/^branches:\s/);
+      last line if ($_ =~ LOG_FILESEPR || $_ =~ LOG_REVSEPR);
+      $log{$rev} .= $_;
+    }
+  }
+  close($fh);
+
+  @revorder = reverse sort { revcmp($a, $b) } @allrevisions;
+
+  #
+  # HEAD is an artificial tag which is simply the highest tag number on the main
+  # branch, unless there is a branch tag in the RCS file in which case it's the
+  # highest revision on that branch.  Find it by looking through @revorder; it
+  # is the first commit listed on the appropriate branch.
+  # This is not neccesary the same revision as marked as head in the RCS file.
+  my $headrev = $curbranch || "1";
+  ($symrev{MAIN} = $headrev) =~ s/(\d+)$/0.$1/;
+
+  foreach $rev (@revorder) {
+    if ($rev =~ /^(\S*)\.\d+$/ && $headrev eq $1) {
+      $symrev{HEAD} = $rev;
+      last;
+    }
+  }
+  ($symrev{HEAD} = $headrev) =~ s/\.\d+$// unless defined($symrev{HEAD});
+
+  #
+  # Now that we know all of the revision numbers, we can associate
+  # absolute revision numbers with all of the symbolic names, and
+  # pass them to the form so that the same association doesn't have
+  # to be built then.
+  #
+  undef @branchnames;
+  undef %branchpoint;
+  undef $sel;
+
+  foreach (reverse sort keys %symrev) {
+    $rev = $symrev{$_};
+    if ($rev =~ /^((.*)\.)?\b0\.(\d+)$/) {
+      push (@branchnames, $_);
+
+      #
+      # A revision number of A.B.0.D really translates into
+      # "the highest current revision on branch A.B.D".
+      #
+      # If there is no branch A.B.D, then it translates into
+      # the head A.B .
+      #
+      # This reasoning also applies to the main branch A.B,
+      # with the branch number 0.A, with the exception that
+      # it has no head to translate to if there is nothing on
+      # the branch, but I guess this can never happen?
+      #
+      # (the code below gracefully forgets about the branch
+      # if it should happen)
+      #
+      $head = defined($2) ? $2 : "";
+      $branch = $3;
+      $branchrev = $head . ($head ne "" ? "." : "") . $branch;
+      $rev = $head;
+
+      my $regex = '^' . quotemeta($branchrev) . '\b';
+      $regex = qr/$regex/;
+
+      foreach my $r (@revorder) {
+        if ($r =~ $regex) {
+          $rev = $branchrev;
+          last;
+        }
+      }
+      next if ($rev eq "");
+
+      if ($rev ne $head && $head ne "") {
+        $branchpoint{$head} .= ', ' if ($branchpoint{$head});
+        $branchpoint{$head} .= $_;
+      }
+    }
+    $revsym{$rev} .= ", " if ($revsym{$rev});
+    $revsym{$rev} .= $_;
+    $sel .= sprintf("<option value=\"%s:%s\">%s</option>\n",
+                    htmlquote($rev), (htmlquote($_)) x 2);
+  }
+
+  my ($onlyonbranch, $onlybranchpoint);
+  if ($onlyonbranch = $input{only_with_tag}) {
+    $onlyonbranch = $symrev{$onlyonbranch};
+    if ($onlyonbranch =~ s/\b0\.//) {
+      ($onlybranchpoint = $onlyonbranch) =~ s/\.\d+$//;
+    } else {
+      $onlybranchpoint = $onlyonbranch;
+    }
+
+    if (!defined($onlyonbranch) || $onlybranchpoint eq "") {
+      fatal("404 Tag not found", 'Tag %s not defined',
+            $input{only_with_tag});
+    }
+  }
+
+  undef @revisions;
+
+  foreach (@allrevisions) {
+    ($br  = $_)  =~ s/\.\d+$//;
+    ($brp = $br) =~ s/\.\d+$//;
+    next if ($onlyonbranch
+             && $br ne $onlyonbranch
+             && $_  ne $onlybranchpoint);
+    unshift(@revisions, $_);
+  }
+
+  if ($logsort eq "date") {
+
+    # Sort the revisions in commit order an secondary sort on revision
+    # (secondary sort needed for imported sources, or the first main
+    # revision gets before the same revision on the 1.1.1 branch)
+    @revdisplayorder =
+      sort { $date{$b} <=> $date{$a} || -revcmp($a, $b) } @revisions;
+  } elsif ($logsort eq "rev") {
+
+    # Sort the revisions in revision order, highest first
+    @revdisplayorder = reverse sort { revcmp($a, $b) } @revisions;
+  } else {
+
+    # No sorting. Present in the same order as rlog / cvs log
+    @revdisplayorder = @revisions;
+  }
+
+  return $curbranch;
+}
+
+
+sub getDiffLinks($$$)
+{
+  my ($url, $mimetype, $isbin) = @_;
+
+  my @links = ();
+  if (!$isbin) { # Offer ordinary diff only for non-binary files.
+    push(@links, &link('preferred', $url));
+    for my $difftype ($DIFFTYPES{$defaultDiffType}{colored} ? qw(u) : qw(h)) {
+      my $f = $difftype eq $defaultDiffType ? '' : $difftype;
+      push(@links,
+           &link(htmlquote(lc($DIFFTYPES{$difftype}{descr})), "$url;f=$f"));
+    }
+  }
+  if (my $extdiffs = $DIFF_COMMANDS{lc($mimetype)}) {
+    for my $i (0 .. scalar(@$extdiffs)-1) {
+      my $extdiff = $extdiffs->[$i];
+      push(@links, &link(htmlquote($extdiff->{name}), "$url;f=ext$i"))
+        if ($extdiff->{cmd} && $extdiff->{name});
+    }
+  }
+  return @links;
+}
+
+
+sub printLog($$$;$$)
+{
+  # inlogview: 1 if in log view, otherwise in markup view.
+  ($_, my $mimetype, my $isbin, my $inlogview, my $isSelected) = @_;
+  (my $br  = $_)  =~ s/\.\d+$//;
+  (my $brp = $br) =~ s/\.?\d+$//;
+
+  print "<a name=\"rev$_\"></a>";
+  if (defined($revsym{$_})) {
+    foreach my $sym (split(", ", $revsym{$_})) {
+      print '<a name="', htmlquote($sym), '"></a>';
+    }
+  }
+  if ($revsym{$br} && !defined($nameprinted{$br})) {
+    foreach my $sym (split(", ", $revsym{$br})) {
+      print '<a name="', htmlquote($sym), '"></a>';
+    }
+    $nameprinted{$br} = 1;
+  }
+
+  print "\n Revision <b>$_</b>";
+  if (/^1\.1\.1\.\d+$/) {
+    print " <i>(vendor branch)</i>";
+  }
+
+  (my $filename = $where) =~ s|^.*/||;
+  my $fileurl   = uri_escape($filename);
+  undef $filename;
+
+  my $isDead = ($state{$_} eq 'dead');
+  if (!$isDead) {
+
+    print ': ', download_link($fileurl, $_, 'download', $mimetype);
+
+    my @vlinks = ();
+    push(@vlinks, display_link($fileurl, $_, 'text', 'text/plain'))
+      unless $isbin;
+    push(@vlinks, display_link($fileurl, $_, 'markup', 'text/x-cvsweb-markup'))
+      if ($allow_markup && $inlogview && (!$isbin || viewable($mimetype)));
+    if (!$isbin && $allow_annotate) {
+      push(@vlinks,
+           &link('annotated',
+                 sprintf('%s?annotate=%s%s', $fileurl, $_, $barequery)));
+    }
+    print ' - view: ', join(', ', @vlinks) if @vlinks;
+    undef @vlinks;
+
+    if (!$isbin && $allow_version_select) {
+      print ' - ';
+      if ($isSelected) {
+        print '<b>[selected&nbsp;for&nbsp;diffs]</b>';
+      } else {
+        print &link('select&nbsp;for&nbsp;diffs',
+                    sprintf('%s?r1=%s%s#rev%s',
+                            $fileurl, $_, $barequery, $_));
+      }
+    }
+    print ' - ', graph_link('', 'revision graph')
+      if (!$inlogview && $allow_cvsgraph);
+  }
+  print "<br />\n";
+
+  print '<i>';
+  if (defined @mytz) {
+    my ($est) = $mytz[(localtime($date{$_}))[8]];
+    print scalar localtime($date{$_}), " $est</i> (";
+  } else {
+    print scalar gmtime($date{$_}), " UTC</i> (";
+  }
+  print readableTime(time() - $date{$_}, 1), ' ago)';
+  print ' by <i>', htmlquote($author{$_}), "</i><br />\n";
+
+  printf("Branches: %s<br />\n", link_tags($revsym{$br})) if $revsym{$br};
+  printf("CVS tags: %s<br />\n", link_tags($revsym{$_}))  if $revsym{$_};
+  printf("Branch point for: %s<br />\n", link_tags($branchpoint{$_}))
+    if $branchpoint{$_};
+
+  # Find the previous revision
+  my $prev;
+  my @prevrev = split(/\./, $_);
+  do {
+    if (--$prevrev[$#prevrev] <= 0) {
+
+      # If it was X.Y.Z.1, just make it X.Y
+      pop (@prevrev);
+      pop (@prevrev);
+    }
+    $prev = join (".", @prevrev);
+  } until (defined($date{$prev}) || $prev eq "");
+
+  if ($isDead) {
+    print "<b><i>FILE REMOVED</i></b><br />\n";
+  } else {
+    my %diffrev = ();
+    $diffrev{$_} = 1;
+    $diffrev{""} = 1;
+    my $diff = 'Diff';
+    my $printed = 0;
+
+    #
+    # Offer diff to previous revision
+    if ($prev) {
+      $diffrev{$prev} = 1;
+      my $url =
+        sprintf('%s.diff?r1=%s;r2=%s%s', $fileurl, $prev, $_, $barequery);
+      if (my @dlinks = getDiffLinks($url, $mimetype, $isbin)) {
+        print $diff, ' to previous ', $prev, ': ', join(', ', @dlinks);
+        $diff = ''; $printed = 1;
+      }
+    }
+
+    #
+    # Plus, if it's on a branch, and it's not a vendor branch,
+    # offer a diff with the branch point.
+    if ($revsym{$brp}
+      && !/^1\.1\.1\.\d+$/
+      && !defined($diffrev{$brp}))
+    {
+      my $url =
+        sprintf('%s.diff?r1=%s;r2=%s%s', $fileurl, $brp, $_, $barequery);
+      if (my @dlinks = getDiffLinks($url, $mimetype, $isbin)) {
+        print $diff, ' to branchpoint ', $brp, ': ', join(', ', @dlinks);
+        $diff = ''; $printed = 1;
+      }
+    }
+
+    #
+    # Plus, if it's on a branch, and it's not a vendor branch,
+    # offer to diff with the next revision of the higher branch.
+    # (e.g. change gets committed and then brought
+    # over to -stable)
+    if (/^\d+\.\d+\.\d+/ && !/^1\.1\.1\.\d+$/) {
+      my ($i, $nextmain);
+
+      for ($i = 0; $i < $#revorder && $revorder[$i] ne $_; $i++) {
+      }
+      my @tmp2 = split(/\./, $_);
+      for ($nextmain = ""; $i > 0; $i--) {
+        my $next = $revorder[$i - 1];
+        my @tmp1 = split(/\./, $next);
+
+        if (@tmp1 < @tmp2) {
+          $nextmain = $next;
+          last;
+        }
+
+        # Only the highest version on a branch should have
+        # a diff for the "next main".
+        last
+          if (@tmp1 - 1 <= @tmp2
+          && join (".", @tmp1[0 .. $#tmp1 - 1]) eq
+          join (".", @tmp2[0 .. $#tmp1 - 1]));
+      }
+
+      if (!defined($diffrev{$nextmain})) {
+        $diffrev{$nextmain} = 1;
+        my $url = sprintf('%s.diff?r1=%s;r2=%s%s',
+          $fileurl, $nextmain, $_, $barequery);
+        if (my @dlinks = getDiffLinks($url, $mimetype, $isbin)) {
+          print $diff, ' next main ', $nextmain, ': ', join(', ', @dlinks);
+          $diff = ''; $printed = 1;
+        }
+      }
+    }
+
+    # Plus if user has selected only r1, then present a link
+    # to make a diff to that revision
+    if (defined($input{r1}) && !defined($diffrev{$input{r1}})) {
+      $diffrev{$input{r1}} = 1;
+      my $url = sprintf('%s.diff?r1=%s;r2=%s%s',
+        $fileurl, $input{r1}, $_, $barequery);
+      if (my @dlinks = getDiffLinks($url, $mimetype, $isbin)) {
+        print $diff, ' to selected ', $input{r1}, ': ', join(', ', @dlinks);
+        $diff = ''; $printed = 1;
+      }
+    }
+
+    print "<br />\n" if $printed;
+  }
+
+  if ($prev ne "" && $difflines{$_}) {
+    printf "Changes since revision %s: %s lines<br />\n",
+      htmlquote($prev), htmlquote($difflines{$_});
+  }
+
+  print "<pre class=\"log\">\n";
+  print &htmlify($log{$_}, $allow_log_extra);
+  print "</pre>\n";
+}
+
+
+#
+# Generates the HTML view for CvsGraph.
+#
+sub doGraphView()
+{
+  (my $pathname = $where) =~ s|[^/]*$||;
+  (my $filename = $where) =~ s|^.*/||;
+
+  navigateHeader($scriptwhere, $pathname, $filename, undef, 'graph');
+
+  my $title = 'Revision graph of ' . htmlquote($pathname . $filename);
+  my $mapname = 'CvsGraphMap';
+
+  printf(<<EOF, $title, $mapname, $cvstree, $title);
+<h3 style="text-align: center">%s</h3>
+<div style="text-align: center"><img border="0" usemap="#%s" src="?cvsroot=%s;graph=1;makeimage=1" alt="%s" />
+EOF
+
+  # Remove any pre-existing tag/branch names from branch links.
+  (my $notag_query = $barequery) =~ s/;+only_with_tag=.*?(?=;|$)//g;
+
+  my @graph_cmd =
+    ($CMD{cvsgraph},
+     '-r', $cvsroot,
+     '-m', $pathname,
+     '-i',
+     '-M', $mapname,
+     '-x', 'x',
+     "-Omap_branch_href=\"href=\\\"./?only_with_tag=%(%t%)$notag_query\\\"\"",
+     "-Omap_rev_href=\"href=\\\"?rev=%(%R%)$barequery\\\"\"",
+     "-Omap_diff_href=\"href=\\\"%(%F%).diff" .
+     "?r1=%(%P%);r2=%(%R%)$barequery\\\"\"",
+     );
+  push(@graph_cmd, '-c', $cvsgraph_config) if $cvsgraph_config;
+  push(@graph_cmd, $filename . ',v');
+
+  local *CVSGRAPH_OUT;
+  my ($h, $err) =
+    startproc(\@graph_cmd, \"", '>pipe', \*CVSGRAPH_OUT);
+  fatal('500 Internal Error', $err) unless $h;
+
+  # Browser compatibility kludge: many browsers do not support client side
+  # image maps where the <map> element contains only the id attribute.  Let's
+  # add the corresponding name attribute to it on the fly.
+  while (<CVSGRAPH_OUT>) {
+    s/(<map\s+id="([^"]+)")\s*>/$1 name="$2">/;
+    print;
+  }
+
+  $h->finish();
+  print "</div>\n";
+
+  html_footer();
+}
+
+
+#
+# Generates a graph using CvsGraph.
+#
+sub doGraph()
+{
+  (my $pathname = $where) =~ s|[^/]*$||;
+  (my $filename = $where) =~ s|^.*/||;
+
+  http_header('image/png');
+
+  my @graph_cmd = ($CMD{cvsgraph}, '-r', $cvsroot, '-m', $pathname);
+  push(@graph_cmd, '-c', $cvsgraph_config) if $cvsgraph_config;
+  push(@graph_cmd, $filename . ',v');
+
+  local *CVSGRAPH_OUT;
+  my ($h, $err) =
+    startproc(\@graph_cmd, \"", '>pipe', \*CVSGRAPH_OUT);
+  fatal('500 Internal Error', $err) unless $h;
+  {
+    local $/ = undef;
+    binmode(\*STDOUT);
+    print <CVSGRAPH_OUT>;
+  }
+  $h->finish();
+}
+
+
+sub doLog($)
+{
+  my ($fullname) = @_;
+
+  my $curbranch = readLog($fullname);
+
+  html_header("CVS log for $where");
+
+  my $upwhere = $where;
+  (my $filename = $where) =~ s|^.*/||;
+  my $backurl = "./$query#" . uri_escape($filename);
+  if ($where =~ m|^(.*?)((?<=/)Attic/)?[^/]+$|) {
+    $upwhere = $1;
+    $backurl = ".$backurl" if $2; # skip over Attic
+  }
+
+  my $isbin = $keywordsubstitution =~ /b/;
+  my $mimetype = getMimeType($filename, $isbin);
+
+  print "<p>\n ";
+  print &link($backicon, $backurl), " <b>Up to ",
+    &clickablePath($upwhere, 1), "</b>\n</p>\n";
+  print "<p>\n ";
+  print &link('Request diff between arbitrary revisions', '#diff');
+  print ' - ', &graph_link('', 'Display revisions graphically')
+    if $allow_cvsgraph;
+  if ($cvshistory_url) {
+    (my $d = $upwhere) =~ s|/+$||;
+    print ' - ', history_link($d, $filename);
+  }
+  print "\n</p>\n<hr />\n";
+
+  print "<p>\n";
+
+  my $explain = $isbin ? ' (i.e.: CVS considers this a binary file)' : '';
+  print "Keyword substitution: $keywordsubstitution$explain<br />\n";
+  if ($curbranch) {
+    print "Default branch: ", ($revsym{$curbranch} || $curbranch);
+  } else {
+    print "No default branch";
+  }
+  print "<br />\n";
+
+  print 'Current tag: ', htmlquote($input{only_with_tag}), "<br />\n"
+    if $input{only_with_tag};
+  print "</p>\n";
+
+  undef %nameprinted;
+
+  for my $r (@revdisplayorder) {
+    print "<hr />\n";
+    my $sel = (defined($input{r1}) && $input{r1} eq $r);
+    print "<div class=\"diff-selected\">\n" if $sel;
+    printLog($r, $mimetype, $isbin, 1, $sel);
+    print "</div>\n" if $sel;
+  }
+
+  printf(<<EOF, $scriptwhere);
+<hr />
+<form method="get" action="%s.diff" id="diff_select">
+<fieldset>
+<legend>Diff request</legend>
+<p>
+ <a name="diff">
+  This form allows you to request diffs between any two revisions of a file.
+  You may select a symbolic revision name using the selection box or you may
+  type in a numeric name using the type-in text box.
+ </a>
+</p>
+EOF
+
+  foreach (@stickyvars) {
+    printf("<input type=\"hidden\" name=\"%s\" value=\"%s\" />\n",
+           $_, htmlquote($input{$_}))
+      if (defined($input{$_}) &&
+          (!defined($DEFAULTVALUE{$_}) || $input{$_} ne $DEFAULTVALUE{$_}));
+  }
+
+  print <<EOF;
+<table summary="Diff between arbitrary revisions">
+<tr>
+<td class="opt-label">
+<label for="r1" accesskey="1">Diffs between</label>
+</td>
+<td class="opt-value">
+<select id="r1" name="r1">
+<option value="text" selected="selected">Use Text Field</option>
+EOF
+  print $sel, "</select>\n";
+
+  my $diffrev = defined($input{r1}) ?
+    $input{r1} : $revdisplayorder[$#revdisplayorder];
+
+  printf(<<EOF, $inputTextSize, $diffrev);
+<input type="text" size="%s" name="tr1" value="%s" onchange="this.form.r1.selectedIndex=0" />
+</td>
+<td></td>
+</tr>
+<tr>
+<td class="opt-label">
+<label for="r2" accesskey="2">and</label>
+</td>
+<td class="opt-value">
+<select id="r2" name="r2">
+<option value="text" selected="selected">Use Text Field</option>
+EOF
+  print $sel, "</select>\n";
+
+  $diffrev = defined($input{r2}) ? $input{r2} : $revdisplayorder[0];
+
+  printf(<<EOF, $inputTextSize, $diffrev, $scriptwhere);
+<input type="text" size="%s" name="tr2" value="%s" onchange="this.form.r2.selectedIndex=0" />
+</td>
+<td><input type="submit" value="Get Diffs" accesskey="G" /></td>
+</tr>
+</table>
+</fieldset>
+</form>
+<form method="get" action="%s">
+<fieldset>
+<legend>Log view options</legend>
+<table summary="Log view options">
+<tr>
+<td class="opt-label">
+<label for="f" accesskey="D">Preferred diff type:</label>
+</td>
+<td class="opt-value">
+EOF
+  printDiffSelect($use_java_script);
+  print <<EOF;
+</td>
+<td></td>
+</tr>
+EOF
+
+  if (@branchnames) {
+
+    printf(<<EOF, $use_java_script ? ' onchange="this.form.submit()"' : '');
+<tr>
+<td class="opt-label">
+<label for="only_with_tag" accesskey="B">View only branch:</label>
+</td>
+<td class="opt-value">
+<a name="branch">
+<select id="only_with_tag" name="only_with_tag"%s>
+EOF
+
+    my @tmp = ();
+    my $selfound = 0;
+    foreach (reverse sort @branchnames) {
+      my $selected =
+        (defined($input{only_with_tag}) && $input{only_with_tag} eq $_);
+      $selfound ||= $selected;
+      push(@tmp, sprintf('<option%s>%s</option>',
+                         $selected ? ' selected="selected"' : '',
+                         htmlquote($_)));
+    }
+    printf("<option value=\"\"%s>Show all branches</option>\n",
+           $selfound ? '' : ' selected="selected"');
+    print join("\n", @tmp);
+
+    print <<EOF
+</select>
+</a>
+</td>
+<td></td>
+</tr>
+EOF
+  }
+
+  print <<EOF;
+<tr>
+<td class="opt-label">
+<label for="logsort" accesskey="L">Sort log by:</label>
+</td>
+<td>
+EOF
+  printLogSortSelect($use_java_script);
+  print <<EOF;
+</td>
+<td><input type="submit" value="Set" accesskey="S" /></td>
+</tr>
+</table>
+EOF
+  foreach (@stickyvars) {
+    next if ($_ eq "f");
+    next if ($_ eq "only_with_tag");
+    next if ($_ eq "logsort");
+    printf("<input type=\"hidden\" name=\"$_\" value=\"%s\" />\n",
+           htmlquote($input{$_}))
+      if (defined($input{$_})
+          && (!defined($DEFAULTVALUE{$_}) || $input{$_} ne $DEFAULTVALUE{$_}));
+  }
+  print "</fieldset>\n</form>\n";
+  html_footer();
+}
+
+
+sub flush_diff_rows($$$$)
+{
+  my ($leftColRef, $rightColRef, $leftRow, $rightRow) = @_;
+
+  return unless defined($state);
+
+  if ($state eq "PreChangeRemove") {    # we just got remove-lines before
+    for (my $j = 0; $j < $leftRow; $j++) {
+      printf(<<EOF, spacedHtmlText(@$leftColRef[$j]));
+<tr>
+ <td class="diff diff-removed">&nbsp;%s</td>
+ <td class="diff diff-empty">&nbsp;</td>
+</tr>
+EOF
+    }
+  } elsif ($state eq "PreChange") {     # state eq "PreChange"
+                                        # we got removes with subsequent adds
+    if (HAS_EDIFF) {
+      # construct the suffix tree
+      my $left_diff = join("\n", @$leftColRef[0..$leftRow-1]);
+      my $right_diff = join("\n", @$rightColRef[0..$rightRow-1]);
+      my $diff_str = String::Ediff::ediff($left_diff, $right_diff);
+
+      my @diff_str = split(/ /, $diff_str);
+      my $INFINITY = 10000000;
+      push(@diff_str, ($INFINITY) x 8);
+      my ($idx, $b1, $e1, $lb1, $le1, $b2, $e2, $lb2, $le2) =
+        (0, @diff_str[0..7]);
+      my ($l_cul, $r_cul) = (0, 0);
+      my ($ldx, $rdx) = (0, 0);
+      my (@left_html, @right_html);
+      for (my $j = 0; $j < $leftRow; $j++) {
+        my $line_len = length(@$leftColRef[$j]);
+        my $line = @$leftColRef[$j];
+        $l_cul += length($line) + 1; # includes "\n"
+        my $l_culx = $l_cul - 1; # not includes "\n"
+        if ($j < $lb1) {
+          $line = spacedHtmlText($line);
+          push(@left_html, "<td class=\"diff diff-changed\">$line</td>");
+        } elsif ($lb1 == $j) {
+          my $html_line;
+          while ($lb1 == $j) {
+            my $begin_char = $l_culx - $b1;
+
+            $line =~ /^(.*)(.{$begin_char})$/;
+            $html_line .= spacedHtmlText($1) .
+              '</span><span class="diff diff-unchanged">';
+            $line = $2;
+            last if ($j != $le1);
+
+            my $end_char = $l_culx - $e1;
+            $line =~ /^(.*)(.{$end_char})$/;
+            $html_line .= spacedHtmlText($1) .
+              '</span><span class="diff diff-changed">';
+            $line = $2;
+
+            $idx++;
+            my ($tb1, $te1, $tlb1, $tle1, $tb2, $te2, $tlb2, $tle2) =
+              ($b1, $e1, $lb1, $le1, $b2, $e2, $lb2, $le2);
+            ($b1, $e1, $lb1, $le1, $b2, $e2, $lb2, $le2) =
+              @diff_str[$idx*8..($idx+1)*8-1];
+            $lb1 = $INFINITY if ($lb1 < 0);
+            $lb2 = $INFINITY if ($lb2 < 0);
+            $le1 = $INFINITY if ($le1 < 0);
+            $le2 = $INFINITY if ($le2 < 0);
+            if ($te1 > $b1) {
+              ($b1, $lb1) = ($te1, $tle1);
+            }
+            if ($te2 > $b2) {
+              ($b2, $lb2) = ($te2, $tle2);
+            }
+          }
+          push(@left_html,
+               sprintf('<td><span class="diff diff-changed">%s%s</span></td>',
+                       $html_line, spacedHtmlText($line)));
+        } elsif ($le1 == $j) {
+          my $html_line;
+          while ($le1 == $j) {
+            my $end_char = $l_culx - $e1;
+            $line =~ /^(.*)(.{$end_char})$/;
+            $html_line .= spacedHtmlText($1) .
+              '</span><span class="diff diff-changed">';
+            $line = $2;
+
+            $idx++;
+            my ($tb1, $te1, $tlb1, $tle1, $tb2, $te2, $tlb2, $tle2) =
+              ($b1, $e1, $lb1, $le1, $b2, $e2, $lb2, $le2);
+            ($b1, $e1, $lb1, $le1, $b2, $e2, $lb2, $le2) =
+              @diff_str[$idx*8..($idx+1)*8-1];
+            $lb1 = $INFINITY if ($lb1 < 0);
+            $lb2 = $INFINITY if ($lb2 < 0);
+            $le1 = $INFINITY if ($le1 < 0);
+            $le2 = $INFINITY if ($le2 < 0);
+            if ($te1 > $b1) {
+              ($b1, $lb1) = ($te1, $tle1);
+            }
+            if ($te2 > $b2) {
+              ($b2, $lb2) = ($te2, $tle2);
+            }
+
+            last if ($lb1 != $j);
+
+            my $begin_char = $l_culx - $b1;
+
+            $line =~ /^(.*)(.{$begin_char})$/;
+            $html_line .= spacedHtmlText($1) .
+              '</span><span class="diff diff-unchanged">';
+            $line = $2;
+          }
+          push(@left_html,
+              sprintf('<td><span class="diff diff-unchanged">%s%s</span></td>',
+                      $html_line, spacedHtmlText($line)));
+        } else {
+          $line = spacedHtmlText($line);
+          push(@left_html, "<td class=\"diff diff-unchanged\">$line</td>");
+        }
+      }
+      ($idx, $b1, $e1, $lb1, $le1, $b2, $e2, $lb2, $le2) =
+        (0, @diff_str[0..7]);
+      $lb1 = $INFINITY if ($lb1 < 0);
+      $lb2 = $INFINITY if ($lb2 < 0);
+      $le1 = $INFINITY if ($le1 < 0);
+      $le2 = $INFINITY if ($le2 < 0);
+      for (my $j = 0; $j < $rightRow; $j++) {
+        my $line_len = length(@$rightColRef[$j]);
+        my $line = @$rightColRef[$j];
+        $r_cul += length($line) + 1; # includes "\n"
+        my $r_culx = $r_cul - 1; # not includes "\n"
+        if ($j < $lb2) {
+          $line = spacedHtmlText($line);
+          push(@right_html, "<td class=\"diff diff-changed\">$line</td>");
+        } elsif ($lb2 == $j) {
+          my $html_line;
+          while ($lb2 == $j) {
+            my $begin_char = $r_culx - $b2;
+
+            $line =~ /^(.*)(.{$begin_char})$/;
+            $html_line .= spacedHtmlText($1) .
+              '</span><span class="diff diff-unchanged">';
+            $line = $2;
+
+            last if ($j != $le2);
+
+            my $end_char = $r_culx - $e2;
+            $line =~ /^(.*)(.{$end_char})$/;
+            $html_line .= spacedHtmlText($1) .
+              '</span><span class="diff diff-changed">';
+            $line = $2;
+
+            $idx++;
+            my ($tb1, $te1, $tlb1, $tle1, $tb2, $te2, $tlb2, $tle2) =
+              ($b1, $e1, $lb1, $le1, $b2, $e2, $lb2, $le2);
+            ($b1, $e1, $lb1, $le1, $b2, $e2, $lb2, $le2) =
+              @diff_str[$idx*8..($idx+1)*8-1];
+            $lb1 = $INFINITY if ($lb1 < 0);
+            $lb2 = $INFINITY if ($lb2 < 0);
+            $le1 = $INFINITY if ($le1 < 0);
+            $le2 = $INFINITY if ($le2 < 0);
+            if ($te1 > $b1) {
+              ($b1, $lb1) = ($te1, $tle1);
+            }
+            if ($te2 > $b2) {
+              ($b2, $lb2) = ($te2, $tle2);
+            }
+          }
+          push(@right_html,
+               sprintf('<td><span class="diff diff-changed">%s%s</span></td>',
+                       $html_line, spacedHtmlText($line)));
+        } elsif ($le2 == $j) {
+          my $html_line;
+          while ($le2 == $j) {
+            my $end_char = $r_culx - $e2;
+            $line =~ /^(.*)(.{$end_char})$/;
+            $html_line .= spacedHtmlText($1) .
+              '</span><span class="diff diff-changed">';
+            $line = $2;
+
+            $idx++;
+            my ($tb1, $te1, $tlb1, $tle1, $tb2, $te2, $tlb2, $tle2) =
+              ($b1, $e1, $lb1, $le1, $b2, $e2, $lb2, $le2);
+            ($b1, $e1, $lb1, $le1, $b2, $e2, $lb2, $le2) =
+              @diff_str[$idx*8..($idx+1)*8-1];
+            $lb1 = $INFINITY if ($lb1 < 0);
+            $lb2 = $INFINITY if ($lb2 < 0);
+            $le1 = $INFINITY if ($le1 < 0);
+            $le2 = $INFINITY if ($le2 < 0);
+            if ($te1 > $b1) {
+              ($b1, $lb1) = ($te1, $tle1);
+            }
+            if ($te2 > $b2) {
+              ($b2, $lb2) = ($te2, $tle2);
+            }
+
+            last if ($lb2 != $j);
+
+            my $begin_char = $r_culx - $b2;
+            $line =~ /^(.*)(.{$begin_char})$/;
+            $html_line .= spacedHtmlText($1) .
+              '</span><span class="diff diff-unchanged">';
+            $line = $2;
+          }
+          push(@right_html,
+               sprintf('<td nowrap="nowrap"><span class="diff diff-unchanged"'.
+                       '>%s%s</span></td>',
+                       $html_line, spacedHtmlText($line)));
+        } else {
+          $line = spacedHtmlText ($line);
+          push @right_html, "<td class=\"diff diff-unchanged\">$line</td>";
+        }
+      }
+      for (my $j = 0; $j < $leftRow || $j < $rightRow ; $j++) { # dump out both cols
+        print  '<tr>';
+        if ($j < $leftRow) {
+          print $left_html[$j];
+        } else {
+          print '<td class="diff diff-changed-missing">&nbsp;</td>';
+        }
+        if ($j < $rightRow) {
+          print $right_html[$j];
+        } else {
+          print '<td class="diff diff-changed-missing">&nbsp;</td>';
+        }
+        print "</tr>\n";
+      }
+    } else {
+      for (my $j = 0; $j < $leftRow || $j < $rightRow; $j++) { # dump both cols
+        print "<tr>\n";
+        if ($j < $leftRow) {
+          print '<td class="diff diff-changed">&nbsp;' .
+            spacedHtmlText(@$leftColRef[$j]) . '</td>';
+        } else {
+          print '<td class="diff diff-changed-missing">&nbsp;</td>';
+        }
+        print "\n";
+
+        if ($j < $rightRow) {
+          print '<td class="diff diff-changed">&nbsp;' .
+            spacedHtmlText(@$rightColRef[$j]) . '</td>';
+        } else {
+          print '<td class="diff diff-changed-missing">&nbsp;</td>';
+        }
+        print "\n</tr>\n";
+      }
+    }
+  }
+}
+
+
+#
+# Generates "human readable", HTMLified diffs.
+#
+sub human_readable_diff($$)
+{
+  my ($fh, $rev) = @_;
+
+  (my $where_nd       = $where)       =~ s|\.diff$||;
+  (my $filename       = $where_nd)    =~ s|^.*/||;
+  (my $pathname       = $where_nd)    =~ s|((?<=/)Attic/)?[^/]*$||;
+  (my $scriptwhere_nd = $scriptwhere) =~ s|\.diff$||;
+
+  navigateHeader($scriptwhere_nd, $pathname, $filename, $rev, 'diff');
+
+  # Read header to pick up read revision and date, if possible.
+
+  my ($r1d, $r1r, $r2d, $r2r);
+  while (<$fh>) {
+    ($r1d, $r1r) = /\t(.*)\t(.*)$/ if (/^--- /);
+    ($r2d, $r2r) = /\t(.*)\t(.*)$/ if (/^\+\+\+ /);
+    last if (/^\+\+\+ /);
+  }
+
+  my ($rev1, $date1);
+  if (defined($r1r) && $r1r =~ /^(\d+\.)+\d+$/) {
+    $rev1  = $r1r;
+    $date1 = $r1d;
+  }
+  my ($rev2, $date2);
+  if (defined($r2r) && $r2r =~ /^(\d+\.)+\d+$/) {
+    $rev2  = $r2r;
+    $date2 = $r2d;
+  }
+  $rev1  = 'unknown-left'  unless defined($rev1);
+  $rev2  = 'unknown-right' unless defined($rev2);
+  $date1 = defined($date1) ? ', ' . htmlquote($date1) : '';
+  $date2 = defined($date2) ? ', ' . htmlquote($date2) : '';
+
+  my $link = uri_escape($filename) . $query;
+
+  # Using <table style=\"border: none\" here breaks NS 4.x badly...
+  print <<EOF;
+<h3 style="text-align: center">Diff for /$where_nd between versions $rev1 and $rev2</h3>
+<table border="0" cellspacing="0" cellpadding="0" width="100%" summary="Diff output">
+<tr style="background-color: #ffffff">
+<th style="text-align: center; vertical-align: top" width="50%">
+<a href="$link;rev=$rev1">version $rev1</a>$date1
+</th>
+<th style="text-align: center; vertical-align: top" width="50%">
+<a href="$link;rev=$rev2">version $rev2</a>$date2
+</th>
+</tr>
+EOF
+
+  # Process diff text
+  # prefetch several lines
+  my @buf = head($fh);
+  my %d = scan_directives(@buf);
+
+  my $leftRow  = 0;
+  my $rightRow = 0;
+  my ($difftxt, @rightCol, @leftCol, $oldline, $newline, $funname);
+
+  $link .= ';content-type=text%2Fx-cvsweb-markup';
+  $link .= ';ln=1' unless ($link =~ /\?.*\bln=1\b/);
+
+  while (@buf || !eof($fh)) {
+    $difftxt = @buf ? shift @buf : <$fh>;
+
+    if ($difftxt =~ /^@@/) {
+      ($oldline, $newline, $funname) =
+        $difftxt =~ /@@ \-([0-9]+).*\+([0-9]+).*@@(.*)/;
+      $funname = htmlquote($funname);
+      $funname =~ s/\s/&nbsp;/go;
+      $funname &&= "&nbsp;<span style=\"font-size: smaller\">$funname</span>";
+      my $ol = $oldline || 1;
+      my $nl = $newline || 1;
+
+      print <<EOF;
+<tr>
+<td width="50%" class="diff-heading">
+ <b><a href="$link;rev=$rev1#l$ol">Line&nbsp;$oldline</a></b>$funname
+</td>
+<td width="50%" class="diff-heading">
+ <b><a href="$link;rev=$rev2#l$nl">Line&nbsp;$newline</a></b>$funname
+</td>
+</tr>
+EOF
+
+      $state    = "dump";
+      $leftRow  = 0;
+      $rightRow = 0;
+    } else {
+      my ($diffcode, $rest) = $difftxt =~ /^([-+ ])(.*)/;
+      $diffcode = '' unless defined($diffcode);
+      $_ = $rest;
+
+      #########
+      # little state machine to parse unified-diff output (Hen, zeller at think.de)
+      # in order to get some nice 'ediff'-mode output
+      # states:
+      #  "dump"             - just dump the value
+      #  "PreChangeRemove"  - we began with '-' .. so this could be the start of a 'change' area or just remove
+      #  "PreChange"        - okey, we got several '-' lines and moved to '+' lines -> this is a change block
+      ##########
+
+      if ($diffcode eq '+') {
+        if ($state eq "dump")
+        {    # 'change' never begins with '+': just dump out value
+          $_ = spacedHtmlText($rest, $d{tabstop});
+          printf(<<EOF, $_);
+<tr>
+ <td class="diff diff-empty">&nbsp;</td>
+ <td class="diff diff-added">&nbsp;%s</td>
+</tr>
+EOF
+        } else {    # we got minus before
+          $state = "PreChange";
+          $rightCol[$rightRow++] = $_;
+        }
+      } elsif ($diffcode eq '-') {
+        $state = "PreChangeRemove";
+        $leftCol[$leftRow++] = $_;
+      } else {    # empty diffcode
+        flush_diff_rows \@leftCol, \@rightCol, $leftRow, $rightRow;
+        $_ = spacedHtmlText($rest, $d{tabstop});
+        printf(<<EOF, $_, $_);
+<tr>
+ <td class="diff diff-same">&nbsp;%s</td>
+ <td class="diff diff-same">&nbsp;%s</td>
+</tr>
+EOF
+        $state    = "dump";
+        $leftRow  = 0;
+        $rightRow = 0;
+      }
+    }
+  }
+  close($fh);
+
+  flush_diff_rows \@leftCol, \@rightCol, $leftRow, $rightRow;
+
+  # state is empty if we didn't have any change
+  if (!$state) {
+    print <<EOF;
+<tr>
+ <td colspan="2">&nbsp;</td>
+</tr>
+<tr class="diff diff-empty">
+ <td colspan="2" align="center"><b>- No viewable change -</b></td>
+</tr>
+EOF
+  }
+
+  printf(<<EOF, $scriptwhere);
+</table>
+<hr style="width: 100%%" />
+<form method="get" action="%s">
+<div style="float: left">
+<label for="f">Diff format:<br />
+EOF
+  printDiffSelectStickyVars();
+  printDiffSelect($use_java_script);
+  printf(<<EOF, $rev1, $rev2);
+</label>
+<input type="submit" value="Show" />
+</div>
+<table style="float: right; border: thin outset" cellspacing="0" cellpadding="1" title="Legend" summary="Legend">
+ <tr>
+  <td align="center" class="diff diff-removed">Removed from v.%s</td>
+  <td class="diff diff-empty">&nbsp;</td>
+ </tr><tr class="diff diff-changed">
+  <td align="center" colspan="2">changed lines</td>
+ </tr><tr>
+  <td class="diff diff-empty">&nbsp;</td>
+  <td align="center" class="diff diff-added">Added in v.%s</td>
+ </tr>
+</table>
+</form>
+<br clear="all" />
+EOF
+}
+
+
+sub doEnscript($$$;$)
+{
+  my ($filehandle, $highlight, $linenumbers, $lang) = @_;
+  $lang ||= 'cvsweb';
+
+  my @cmd = ($CMD{enscript},
+             @enscript_options,
+             '-q', "--language=$lang", '-o', '-', "--highlight=$highlight");
+
+  local *ENSCRIPT_OUT;
+  my ($h, $err) =
+    startproc(\@cmd, $filehandle, '>pipe', \*ENSCRIPT_OUT);
+  fatal('500 Internal Error', $err) unless $h;
+
+  # We could short-circuit and have enscript output directly to STDOUT above,
+  # but that doesn't work with mod_perl (at least some 1.99 versions).
+  if ($linenumbers) {
+    my $ln = 0;
+    while (<ENSCRIPT_OUT>) {
+      printf '<a id="l%d" class="src">%5d: </a>', (++$ln) x 2;
+      print $_;
+    }
+  } else {
+    local $/ = undef;
+    print <ENSCRIPT_OUT>;
+  }
+  $h->finish();
+}
+
+
+#
+# The passed in $path and $filename should not be URI escaped, and $swhere
+# *should* be.
+#
+sub navigateHeader($$$$$;$)
+{
+  my ($swhere, $path, $filename, $rev, $title, $moddate) = @_;
+  $swhere = "" if ($swhere eq $scriptwhere);
+  $swhere = './' . uri_escape($filename) if ($swhere eq "");
+
+  my $qfile = htmlquote($filename);
+  my $qpath = htmlquote($path);
+  my $trev  = $rev ? " - $rev" : '';
+
+if(!defined($ENV{'PHP_WRAPPER'})) {
+  http_header('', $moddate);
+
+  print <<EOF;
+$HTML_DOCTYPE
+<html>
+<head>
+<title>$qpath$qfile - $title$trev</title>
+$HTML_META$CSS</head>
+<body class="src">
+<table class="navigate-header" width="100%" summary="Navigation">
+ <tr>
+  <td>
+EOF
+} else {
+  print <<EOF;
+<table class="navigate-header" width="100%">
+ <tr>
+   <td>
+EOF
+}
+
+  print &link($backicon, "$swhere$query" . ($rev ? "#rev$rev" : ''));
+  printf '<b>Return to %s CVS log',
+    &link($qfile, "$swhere$query" . ($rev ? "#rev$rev" : ''));
+  print "</b> $fileicon</td>";
+
+  printf(<<EOF, $diricon, &clickablePath($path, 1));
+  <td style="text-align: right">%s <b>Up to %s</b></td>
+ </tr>
+</table>
+EOF
+}
+
+
+sub plural_write($$)
+{
+  my ($num, $text) = @_;
+  if ($num != 1) {
+    $text .= "s";
+  }
+
+  if ($num > 0) {
+    return join (' ', $num, $text);
+  } else {
+    return "";
+  }
+}
+
+
+##
+# print readable timestamp in terms of
+# '..time ago'
+# H. Zeller <zeller at think.de>
+##
+sub readableTime($$)
+{
+  my ($secs, $long) = @_;
+
+  # This function works correctly for time >= 2 seconds.
+  return 'very little time' if ($secs < 2);
+
+  my %desc = (
+              1        => 'second',
+              60       => 'minute',
+              3600     => 'hour',
+              86400    => 'day',
+              604800   => 'week',
+              2628000  => 'month',
+              31536000 => 'year'
+             );
+
+  my @breaks = sort { $a <=> $b } keys %desc;
+  my $i = 0;
+
+  while ($i <= $#breaks && $secs >= 2 * $breaks[$i]) {
+    $i++;
+  }
+  $i--;
+  my $break  = $breaks[$i];
+  my $retval = plural_write(int($secs / $break), $desc{$break});
+
+  if ($long == 1 && $i > 0) {
+    my $rest = $secs % $break;
+    $i--;
+    $break = $breaks[$i];
+    my $resttime = plural_write(int($rest / $break), $desc{$break});
+    if ($resttime) {
+      $retval .= ", $resttime";
+    }
+  }
+
+  return $retval;
+}
+
+
+#
+# Returns a htmlified path where each directory is a link for faster
+# navigation.  $clickLast controls whether the basename
+# (last directory/file) is a link as well.  The passed in $pathname should
+# *not* be URI escaped.
+#
+sub clickablePath($$)
+{
+  my ($pathname, $clickLast) = @_;
+
+  my $root = '[' . htmlquote($CVSROOTdescr{$cvstree} || $cvstree) . ']';
+
+  # This should never happen (see chooseCVSRoot()), but let's be sure...
+  return $root if ($pathname eq '/');
+
+  my $retval =
+    ' ' . &link($root, sprintf('%s/%s#dirlist', $scriptname, $query));
+  my $wherepath = '';
+  my ($lastslash) = $pathname =~ m|/$|;
+
+  foreach (split(m|/|, $pathname)) {
+    $retval .= ' / ';
+    $wherepath .= "/$_";
+    my $last = "$wherepath/" eq "/$pathname" || $wherepath eq "/$pathname";
+
+    if ($clickLast || !$last) {
+      $retval .= &link(htmlquote($_),
+                       join ('',
+                             $scriptname, uri_escape_path($wherepath),
+                             (!$last || $lastslash ? '/' : ''), $query,
+                             (!$last || $lastslash ? "#dirlist" : "")));
+    } else {    # do not make a link to the current dir
+      $retval .= htmlquote($_);
+    }
+  }
+  return $retval;
+}
+
+
+sub chooseCVSRoot()
+{
+  print "<form method=\"get\" action=\"$scriptwhere\">\n<p>\n";
+  if (2 <= @CVSROOT) {
+    foreach my $k (keys %input) {
+      printf("<input type=\"hidden\" name=\"%s\" value=\"%s\" />\n",
+             htmlquote($k), htmlquote($input{$k}))
+        if ($input{$k} && $k ne 'cvsroot');
+    }
+
+    printf(<<EOF, $use_java_script ? ' onchange="this.form.submit()"' : '');
+<label for="cvsroot" accesskey="C">CVS Root:
+<select id="cvsroot" name="cvsroot"%s>
+EOF
+
+    foreach my $k (@CVSROOT) {
+      printf("<option value=\"%s\"%s>%s</option>\n",
+             htmlquote($k),
+             ($k eq $cvstree) ? ' selected="selected"' : '',
+             htmlquote($CVSROOTdescr{$k} || $k));
+    }
+    print '</select></label>';
+  } else {
+
+    # no choice -- but we need the form to select module/path,
+    # at least for Netscape
+    printf "CVS Root: <b>[%s]</b>",
+      htmlquote($CVSROOTdescr{$cvstree} || $cvstree);
+  }
+
+  print <<EOF;
+<label for="mpath" accesskey="M">
+Module path or alias:
+<input type="text" id="mpath" name="path" value="" size="15" />
+</label>
+<input type="submit" value="Go" accesskey="O" />
+</p>
+</form>
+EOF
+}
+
+
+sub chooseMirror()
+{
+  # This code comes from the original BSD-cvsweb
+  # and may not be useful for your site; If you don't
+  # set %MIRRORS this won't show up, anyway.
+  scalar(%MIRRORS) or return;
+
+  # Should perhaps exclude the current site somehow...
+  print "\n<p>\nThis CVSweb is mirrored in\n";
+
+  my @tmp = map(&link(htmlquote($_), $MIRRORS{$_}), sort keys %MIRRORS);
+  my $tmp = pop (@tmp);
+
+  if (scalar(@tmp)) {
+    print join (', ', @tmp), ' and ';
+  }
+
+  print "$tmp.\n</p>\n";
+}
+
+
+sub fileSortCmp()
+{
+  (my $af = $a) =~ s/,v$//;
+  (my $bf = $b) =~ s/,v$//;
+  my ($rev1, $date1, $log1, $author1, $filename1) = @{$fileinfo{$af}}
+    if (defined($fileinfo{$af}));
+  my ($rev2, $date2, $log2, $author2, $filename2) = @{$fileinfo{$bf}}
+    if (defined($fileinfo{$bf}));
+
+  my $comp = 0;
+  if (defined($filename1) && defined($filename2) &&
+      $af eq $filename1   && $bf eq $filename2)
+  {
+
+    # Two files
+    $comp = -revcmp($rev1, $rev2)             if ($byrev  && $rev1  && $rev2);
+    $comp = ($date2   <=> $date1)             if ($bydate && $date1 && $date2);
+    if ($input{ignorecase}) {
+      $comp = (uc($log1)    cmp uc($log2))    if ($bylog && $log1 && $log2);
+      $comp = (uc($author1) cmp uc($author2)) if ($byauthor &&
+                                                  $author1 && $author2);
+    } else {
+      $comp = ($log1    cmp $log2)            if ($bylog && $log1 && $log2);
+      $comp = ($author1 cmp $author2)         if ($byauthor &&
+                                                  $author1 && $author2);
+    }
+  }
+
+  if ($comp == 0) {
+
+    # Directories first, then files under version control,
+    # then other, "rogue" files.
+    # Sort by filename if no other criteria available.
+
+    my $ad = (
+      (-d "$fullname/$a")
+      ? 'D'
+      : (defined($fileinfo{$af}) ? 'F' : 'R')
+    );
+    my $bd = (
+      (-d "$fullname/$b")
+      ? 'D'
+      : (defined($fileinfo{$bf}) ? 'F' : 'R')
+    );
+    (my $c = $a) =~ s|.*/||;
+    (my $d = $b) =~ s|.*/||;
+
+    my ($l, $r) = ("$ad$c", "$bd$d");
+    $comp = $input{ignorecase} ? (uc($l) cmp uc($r)) : ($l cmp $r);
+
+    # Parent dir is always first, then Attic.
+    if ($comp != 0) {
+      if ($l eq 'D..') {
+        $comp = -1;
+      } elsif ($r eq 'D..') {
+        $comp = 1;
+      } elsif ($l eq 'DAttic') {
+        $comp = -1;
+      } elsif ($r eq 'DAttic') {
+        $comp = 1;
+      }
+    }
+  }
+  return $comp;
+}
+
+#
+# Returns a URL to download the selected revision.
+# Expects the passed in URL to be URI escaped, relative, and without a query
+# string.
+#
+sub download_url($$;$)
+{
+  my ($url, $revision, $mimetype) = @_;
+  my @dots = $revision =~ /\./g;
+  #$revision =~ s/\b0\.(?=\d+$)// if (scalar(@dots) & 1);
+
+  if (!defined($mimetype) || $mimetype !~ CVSWEBMARKUP) {
+    my $path = $where;
+    $path =~ s|[^/]+$||;
+    $url = "$scriptname/$CheckoutMagic/$path$url";
+  }
+  $url .= '?rev=' . uri_escape($revision);
+  $url .= ';content-type=' . uri_escape($mimetype) if $mimetype;
+
+  return $url;
+}
+
+#
+# Returns a link to download the selected revision.
+# Expects the passed in URL to be URI escaped, relative,
+# and without a query string.
+#
+sub download_link($$$;$)
+{
+  my ($url, $revision, $textlink, $mimetype) = @_;
+  return sprintf('<a href="%s" class="download-link">%s</a>',
+                 download_url($url, $revision, $mimetype) . $barequery,
+                 htmlquote($textlink));
+}
+
+#
+# Returns a URL to display the selected revision.
+# Expects the passed in URL to be URI escaped, and without a query string.
+#
+sub display_url($$;$)
+{
+  my ($url, $revision, $mimetype) = @_;
+  $url .= '?rev=' . uri_escape($revision);
+  $url .= ';content-type=' . uri_escape($mimetype) if $mimetype;
+  return $url;
+}
+
+#
+# Returns a link to display the selected revision.
+# Expects the passed in URL to be URI escaped, and without a query string.
+#
+sub display_link($$;$$)
+{
+  my ($url, $revision, $textlink, $mtype) = @_;
+  $textlink = $revision unless defined($textlink);
+  return sprintf('<a href="%s" class="display-link">%s</a>',
+                 display_url($url, $revision, $mtype) . $barequery,
+                 htmlquote($textlink));
+}
+
+#
+# Expects the passed in URL to be URI escaped, and without a query string.
+# The passed in link text should be already HTML escaped as appropriate.
+#
+sub graph_link($;$)
+{
+  my ($url, $text) = @_;
+  $text ||= $graphicon;
+  return sprintf('<a href="%s?graph=1%s">%s</a>', $url, $barequery, $text);
+}
+
+#
+# Returns a link to CVSHistory for the given directory and filename.
+#
+sub history_link($$;$)
+{
+  my ($dir, $file, $text) = @_;
+  $dir  ||= '';
+  $file ||= '';
+  $text ||= 'History';
+  return &link($text,
+               sprintf('%s?cvsroot=%s;dsearch=%s;fsearch=%s;limit=1',
+                       $cvshistory_url, uri_escape($input{cvsroot} || ''),
+                       uri_escape($dir), uri_escape($file)));
+}
+
+# Returns a Query string with the
+# specified parameter toggled
+sub toggleQuery($;$)
+{
+  my ($toggle, $value) = @_;
+
+  my %vars = %input;
+
+  if (defined($value)) {
+    $vars{$toggle} = $value;
+  } else {
+    $vars{$toggle} = $vars{$toggle} ? 0 : 1;
+  }
+
+  # Build a new query of non-default paramenters
+  my $newquery = "";
+  foreach my $var (@stickyvars) {
+    my ($value)   = defined($vars{$var})         ? $vars{$var}         : "";
+    my ($default) = defined($DEFAULTVALUE{$var}) ? $DEFAULTVALUE{$var} : "";
+
+    if ($value ne $default) {
+      $newquery .= ';' if ($newquery ne "");
+      $newquery .= uri_escape($var) . '=' . uri_escape($value);
+    }
+  }
+
+  if ($newquery) {
+    return '?' . $newquery;
+  }
+  return "";
+}
+
+sub htmlquote($)
+{
+  local ($_) = @_;
+  # Special Characters; RFC 1866
+  s/&/&amp;/g;
+  s/\"/&quot;/g;
+  s/</&lt;/g;
+  s/>/&gt;/g;
+  return $_;
+}
+
+sub htmlunquote($)
+{
+  local ($_) = @_;
+  # Special Characters; RFC 1866
+  s/&quot;/\"/g;
+  s/&lt;/</g;
+  s/&gt;/>/g;
+  s/&amp;/&/g;
+  return $_;
+}
+
+sub uri_escape_path($)
+{
+  return join('/', map(uri_escape($_), split(m|/+|, shift, -1)));
+}
+
+sub http_header(;$$)
+{
+  if(!defined($ENV{'PHP_WRAPPER'})) {
+  my ($content_type, $moddate) = @_;
+  $content_type ||= 'text/html';
+
+  $content_type .= "; charset=$charset"
+    if ($charset && $content_type =~ m,^text/,);
+
+  # Note that in the following, we explicitly join() and concatenate the
+  # headers instead of printing them as an array.  This is because some
+  # systems, eg. early versions of mod_perl 2 don't quite get it if the
+  # last \r\n\r\n isn't included in the last "payload" header print().
+
+  my @headers = ();
+  # TODO: ctime(3) from scalar gmtime() isn't HTTP compliant, see HTTP::Date.
+  push(@headers, 'Last-Modified: ' . scalar gmtime($moddate) . ' GMT')
+    if $moddate;
+  push(@headers, 'Content-Type: ' . $content_type);
+
+  if ($allow_compress && $maycompress) {
+    if (HAS_ZLIB
+        || (defined($CMD{gzip}) && open(GZIP, "| $CMD{gzip} -1 -c")))
+    {
+
+      push(@headers, 'Content-Encoding: x-gzip');
+      push(@headers, 'Vary: Accept-Encoding');     # RFC 2616, 14.44
+      print join("\r\n", @headers) . "\r\n\r\n";
+
+      $| = 1;
+      $| = 0;                                      # Flush header output.
+
+      tie(*GZIP, __PACKAGE__, \*STDOUT) if HAS_ZLIB;
+      select(GZIP);
+      $gzip_open = 1;
+
+    } else {
+
+      print join("\r\n", @headers) . "\r\n\r\n";
+      printf
+        '<span style="font-size: smaller">Unable to find gzip binary in the <b>$command_path</b> (<code>%s</code>) to compress output</span><br />',
+          htmlquote(join(':', @command_path));
+    }
+
+  } else {
+    print join("\r\n", @headers) . "\r\n\r\n";
+  }
+  }
+}
+
+
+sub html_header($;$)
+{
+if(!defined($ENV{'PHP_WRAPPER'})) {
+  my ($title, $moddate) = @_;
+  $title = htmlquote($title);
+  my $l = $logo || '';
+  http_header('text/html', $moddate);
+  print <<EOH;
+$HTML_DOCTYPE
+<html>
+<head>
+<title>$title</title>
+$HTML_META$CSS</head>
+<body>
+$l <h1>$title</h1>
+EOH
+}
+}
+
+sub html_footer()
+{
+  print "<hr />\n<address>$address</address>\n" if $address;
+if(!defined($ENV{'PHP_WRAPPER'})) {
+  print "</body>\n</html>\n";
+}
+}
+
+sub link_tags($)
+{
+  my ($tags) = @_;
+
+  (my $filename = $where) =~ s|^.*/||;
+  my $fileurl = './' . uri_escape($filename);
+
+  my $ret = "";
+  foreach my $sym (split(", ", $tags)) {
+    $ret .= ",\n" if ($ret ne "");
+    $ret .= &link(htmlquote($sym),
+                  $fileurl . toggleQuery('only_with_tag', $sym));
+  }
+  return $ret;
+}
+
+sub urlize_author($)
+{
+  my ($author) = @_;
+  if(defined($authorurl_pattern) && $authorurl_pattern && $author ne 'root') {
+  	my $authorurl = $authorurl_pattern;
+    $authorurl =~ s|:AUTHOR:|$author|g;
+    $author = $authorurl;
+  }
+  return $author;
+}
+
+#
+# See if a file/dir is listed in the config file's @ForbiddenFiles list.
+# Takes a full file system path or one relative to $cvsroot, and strips the
+# trailing ",v" if present, then compares.  Returns 1 if forbidden, else 0.
+#
+sub forbidden($)
+{
+  (my $path = canonpath(shift)) =~ s/,v$//;
+  $path =~ s|^$cvsroot/+||;
+  for my $forbidden_re (@ForbiddenFiles) {
+    return 1 if ($path =~ $forbidden_re);
+  }
+  return 0;
+}
+
+
+#
+# Starts a process using IPC::Run.  All arguments are passed to
+# IPC::Run::start() as-is.  Returns an array ($harness, $error) where
+# $harness is from IPC::Run if start() succeeds, undef otherwise.  In case
+# of an error, $error contains the error message.
+#
+sub startproc(@)
+{
+  my $h = my $err = undef;
+  eval {
+    local $SIG{__DIE__};
+    $h = IPC::Run::start(@_) or die("return code: $?");
+  };
+  if ($@) {
+    $h->finish() if $h;
+    $h = undef;
+    $err = "'@{$_[0]}' failed: $@";
+  }
+  return ($h, $err);
+}
+
+#
+# Runs a process using IPC::Run.  All arguments are passed to
+# IPC::Run::run() as-is.  Returns an array ($exitcode, $errormsg).
+#
+sub runproc(@)
+{
+  eval {
+    local $SIG{__DIE__};
+    IPC::Run::run(@_);
+  };
+  my $exitcode = $? >> 8;
+  my $errormsg  = undef;
+  if ($@) {
+    $exitcode ||= -1;
+    $errormsg = "'@{$_[0]}' failed: $@";
+  }
+  return ($exitcode, $errormsg);
+}
+
+#
+# Check out a file to a temporary file.
+#
+sub checkout_to_temp($$$)
+{
+  my ($cvsroot, $cvsname, $rev) = @_;
+
+  # Pipe given cvs file into a temporary place.
+  my ($temp_fh, $temp_fn) = tempfile('.cvsweb.XXXXXXXX', DIR => tmpdir());
+
+  my @cmd = ($CMD{cvs}, @cvs_options, '-Qd', $cvsroot,
+             'co', '-p', "-r$rev", $cvsname);
+
+  local (*DIFF_OUT);
+  my ($h, $err) = startproc(\@cmd, \"", '>pipe', \*DIFF_OUT);
+  if ($h) {
+    local $/ = undef;
+    print $temp_fh <DIFF_OUT>;
+    $h->finish();
+    close($temp_fh);
+  } else {
+    close($temp_fh);
+    unlink($temp_fn);
+    fatal('500 Internal Error',
+          'Checkout failure (exit status %s), output: <pre>%s</pre>',
+          $? >> 8 || -1, $err);
+  }
+
+  return $temp_fn;
+}
+
+#
+# Close the GZIP handle, and remove the tie.
+#
+sub gzipclose
+{
+  if ($gzip_open) {
+    select(STDOUT);
+    close(GZIP);
+    untie *GZIP;
+    $gzip_open = 0;
+  }
+}
+
+# implement a gzipped file handle via the Compress:Zlib compression
+# library.
+
+sub MAGIC1() { 0x1f }
+sub MAGIC2() { 0x8b }
+sub OSCODE() { 3 }
+
+sub TIEHANDLE
+{
+  my ($class, $out) = @_;
+  my ($d) = Compress::Zlib::deflateInit(
+    -Level      => Compress::Zlib::Z_BEST_COMPRESSION(),
+    -WindowBits => -Compress::Zlib::MAX_WBITS()
+    )
+    or return undef;
+  my ($o) = { handle => $out,
+              dh     => $d,
+              crc    => 0,
+              len    => 0,
+            };
+  my ($header) = pack("c10",
+                      MAGIC1, MAGIC2, Compress::Zlib::Z_DEFLATED(),
+                      0, 0, 0, 0, 0, 0, OSCODE);
+  print {$o->{handle}} $header;
+  return bless($o, $class);
+}
+
+sub PRINT
+{
+  my ($o)   = shift;
+  my ($buf) = join (defined($,) ? $, : "", @_);
+  my ($len) = length($buf);
+  my ($compressed, $status) = $o->{dh}->deflate($buf);
+  print {$o->{handle}} $compressed if defined($compressed);
+  $o->{crc} = Compress::Zlib::crc32($buf, $o->{crc});
+  $o->{len} += $len;
+  return $len;
+}
+
+sub PRINTF
+{
+  my ($o)   = shift;
+  my ($fmt) = shift;
+  my ($buf) = sprintf($fmt, @_);
+  my ($len) = length($buf);
+  my ($compressed, $status) = $o->{dh}->deflate($buf);
+  print {$o->{handle}} $compressed if defined($compressed);
+  $o->{crc} = Compress::Zlib::crc32($buf, $o->{crc});
+  $o->{len} += $len;
+  return $len;
+}
+
+sub WRITE
+{
+  my ($o, $buf, $len, $off) = @_;
+  my ($compressed, $status) = $o->{dh}->deflate(substr($buf, 0, $len));
+  print {$o->{handle}} $compressed if defined($compressed);
+  $o->{crc} = Compress::Zlib::crc32(substr($buf, 0, $len), $o->{crc});
+  $o->{len} += $len;
+  return $len;
+}
+
+sub CLOSE
+{
+  my ($o) = @_;
+  return if !defined($o->{dh});
+  my ($buf) = $o->{dh}->flush();
+  $buf .= pack("V V", $o->{crc}, $o->{len});
+  print {$o->{handle}} $buf;
+  undef $o->{dh};
+}
+
+sub DESTROY
+{
+  my ($o) = @_;
+  CLOSE($o);
+}
+
+# Local variables:
+# indent-tabs-mode: nil
+# cperl-indent-level: 2
+# End:


Property changes on: trunk/gforge_base/evolvisforge/plugins.test/scmcvs/cgi-bin/cvsweb
___________________________________________________________________
Added: svn:executable
   + *

Added: trunk/gforge_base/evolvisforge/plugins.test/scmcvs/cgi-bin/cvsweb.ori
===================================================================
--- trunk/gforge_base/evolvisforge/plugins.test/scmcvs/cgi-bin/cvsweb.ori	                        (rev 0)
+++ trunk/gforge_base/evolvisforge/plugins.test/scmcvs/cgi-bin/cvsweb.ori	2010-02-26 00:19:01 UTC (rev 4850)
@@ -0,0 +1,4494 @@
+#!/usr/bin/perl -T
+#
+# cvsweb - a CGI interface to CVS trees.
+#
+# Written in their spare time by
+#             Bill Fenner          <fenner at FreeBSD.org>   (original work)
+# extended by Henner Zeller        <zeller at think.de>,
+#             Henrik Nordstrom     <hno at hem.passagen.se>
+#             Ken Coar             <coar at Apache.Org>
+#             Dick Balaska         <dick at buckosoft.com>
+#             Akinori MUSHA        <knu at FreeBSD.org>
+#             Jens-Uwe Mager       <jum at helios.de>
+#             Ville Skyttä         <scop at FreeBSD.org>
+#             Vassilii Khachaturov <vassilii at tarunz.org>
+#
+# Based on:
+# * Bill Fenners cvsweb.cgi revision 1.28 available from:
+#   http://www.FreeBSD.org/cgi/cvsweb.cgi/www/en/cgi/cvsweb.cgi
+#
+# Copyright (c) 1996-1998 Bill Fenner
+#           (c) 1998-1999 Henner Zeller
+#           (c) 1999      Henrik Nordstrom
+#           (c) 2000-2002 Akinori MUSHA
+#           (c) 2002-2004 Ville Skyttä
+# 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.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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.
+#
+# $FreeBSD: projects/cvsweb/cvsweb.cgi,v 1.272 2004/08/20 18:28:44 scop Exp $
+# $Id$
+# $Idaemons: /home/cvs/cvsweb/cvsweb.cgi,v 1.84 2001/10/07 20:50:10 knu Exp $
+#
+###
+
+require 5.006;
+
+use strict;
+
+use warnings;
+use filetest qw(access);
+
+use vars qw (
+  $VERSION $CheckoutMagic $MimeTypes
+  $config $allow_version_select
+  @CVSrepositories @CVSROOT %CVSROOT %CVSROOTdescr
+  %MIRRORS %DEFAULTVALUE %ICONS %MTYPES
+  %DIFF_COMMANDS @DIFFTYPES %DIFFTYPES @LOGSORTKEYS %LOGSORTKEYS
+  %alltags %fileinfo %tags @branchnames %nameprinted
+  %symrev %revsym @allrevisions %date %author @revdisplayorder
+  @revisions %state %difflines %log %branchpoint @revorder $keywordsubstitution
+  $prcgi @prcategories $re_prcategories $prkeyword $re_prkeyword $mancgi
+  $doCheckout $scriptname $scriptwhere
+  $where $Browser $nofilelinks $maycompress @stickyvars %funcline_regexp
+  $is_links $is_lynx $is_w3m $is_msie $is_mozilla3 $is_textbased
+  %input $query $barequery $sortby $bydate $byrev $byauthor
+  $bylog $byfile $defaultDiffType $logsort $cvstree $cvsroot
+  $charset $output_filter
+  @command_path %CMD $allow_compress $backicon $diricon $fileicon $graphicon
+  $fullname $cvstreedefault $logo $defaulttitle $address $binfileicon
+  $long_intro $short_instruction $shortLogLen $show_author
+  $tablepadding $hr_breakable $showfunc $hr_ignwhite $hr_ignkeysubst
+  $inputTextSize $mime_types $allow_annotate $allow_markup
+  $allow_log_extra $allow_dir_extra $allow_source_extra
+  $allow_cvsgraph $cvsgraph_config $use_java_script $edit_option_form
+  $show_subdir_lastmod $show_log_in_markup $preformat_in_markup
+  $tabstop $state $annTable $sel @ForbiddenFiles
+  $use_descriptions %descriptions @mytz $dwhere
+  $use_moddate $gzip_open $file_list_len
+  $allow_tar @tar_options @gzip_options @zip_options @cvs_options
+  @annotate_options @rcsdiff_options
+  $HTML_DOCTYPE $HTML_META $cssurl $CSS $cvshistory_url
+  $allow_enscript @enscript_options %enscript_types
+);
+
+use Cwd                   qw(abs_path cwd);
+use File::Basename        qw(dirname);
+use File::Path            qw(rmtree);
+use File::Spec::Functions qw(canonpath catdir catfile curdir devnull rootdir
+                             tmpdir updir);
+use File::Temp            qw(tempdir tempfile);
+use IPC::Run              qw();
+use Time::Local           qw(timegm);
+use URI::Escape           qw(uri_escape uri_unescape);
+
+use constant VALID_PATH   => qr/^([[:^cntrl:]]+)$/o;
+use constant VALID_TAG1   => qr/^([a-zA-Z][[:graph:]]*)$/o;
+use constant VALID_TAG2   => qr/^([^\$,.:;@]+)$/o;
+use constant CVSWEBMARKUP => qr{^text/(x-cvsweb|vnd\.viewcvs)-markup$}io;
+use constant LOG_FILESEPR => qr/^={77}$/o;
+use constant LOG_REVSEPR  => qr/^-{28}$/o;
+
+use constant HAS_ZLIB     => eval { require Compress::Zlib; };
+use constant HAS_EDIFF    => eval { require String::Ediff;  };
+
+# -----------------------------------------------------------------------------
+
+# All global initialization that can be done in compile time should go to
+# the BEGIN block.  Persistent environments, such as mod_perl, will benefit
+# from this.
+
+BEGIN
+{
+  $VERSION = '3.0.2';
+
+  $HTML_DOCTYPE =
+    '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" ' .
+    '"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">';
+
+  $HTML_META = <<EOM;
+<meta name="robots" content="nofollow" />
+<meta name="generator" content="FreeBSD-CVSweb $VERSION" />
+<meta http-equiv="Content-Script-Type" content="text/javascript" />
+<meta http-equiv="Content-Style-Type" content="text/css" />
+EOM
+
+  # Use MIME::Types for MIME type lookups if it's available.
+  eval {
+    require MIME::Types;
+    $MimeTypes = MIME::Types->new(only_complete => 1);
+  };
+  $MimeTypes = undef if $@;
+
+  $CheckoutMagic = '~checkout~';
+}
+
+# -----------------------------------------------------------------------------
+
+sub printDiffSelect($);
+sub printDiffSelectStickyVars();
+sub getDiffLinks($$$);
+sub printLogSortSelect($);
+sub findLastModifiedSubdirs(@);
+sub htmlify_sub(&$);
+sub htmlify($;$);
+sub spacedHtmlText($;$);
+sub link($$);
+sub revcmp($$);
+sub fatal($$@);
+sub redirect($;$);
+sub safeglob($);
+sub search_path($);
+sub getEnscriptHL($);
+sub getMimeType($;$);
+sub head($;$);
+sub scan_directives(@);
+sub openOutputFilter();
+sub doAnnotate($);
+sub doCheckout($$);
+sub doEnscript($$$;$);
+sub doGraph();
+sub doGraphView();
+sub cvswebMarkup($$$$$$;$);
+sub viewable($);
+sub doDiff($$$$$$);
+sub getDirLogs($$@);
+sub readLog($;$);
+sub printLog($$$;$$);
+sub doLog($);
+sub flush_diff_rows($$$$);
+sub human_readable_diff($$);
+sub navigateHeader($$$$$;$);
+sub plural_write($$);
+sub readableTime($$);
+sub clickablePath($$);
+sub chooseCVSRoot();
+sub chooseMirror();
+sub fileSortCmp();
+sub download_url($$;$);
+sub download_link($$$;$);
+sub display_url($$;$);
+sub display_link($$;$$);
+sub graph_link($;$);
+sub history_link($$;$);
+sub toggleQuery($;$);
+sub htmlquote($);
+sub htmlunquote($);
+sub uri_escape_path($);
+sub http_header(;$$);
+sub html_header($;$);
+sub html_footer();
+sub link_tags($);
+sub forbidden($);
+sub startproc(@);
+sub runproc(@);
+sub checkout_to_temp($$$);
+
+##### Start of Configuration Area ########
+
+# Get rid of unsafe environment vars.  Don't do this in BEGIN...
+delete(@ENV{qw(PATH IFS CDPATH ENV BASH_ENV)});
+
+my ($mydir) = (dirname($0) =~ /(.*)/);    # untaint
+
+# == EDIT this ==
+# Locations to search for user configuration, in order:
+for (catfile($mydir, 'cvsweb.conf'), '/usr/local/etc/cvsweb/cvsweb.conf') {
+  if (-r $_) {
+    $config = $_;
+    last;
+  }
+}
+undef $mydir;
+
+# == Configuration defaults ==
+# Defaults for configuration variables that shouldn't need
+# to be configured..
+$allow_version_select = 1;
+$allow_log_extra      = 1;
+
+##### End of Configuration Area   ########
+
+######## Configuration variables #########
+# These are defined to allow checking with perl -cw
+
+ at CVSrepositories = @CVSROOT = %CVSROOT = %MIRRORS = %DEFAULTVALUE = %ICONS =
+  %MTYPES = %tags = %alltags = %fileinfo = %DIFF_COMMANDS = ();
+
+$cvstreedefault = $logo = $defaulttitle =
+  $address = $long_intro = $short_instruction = $shortLogLen = $show_author =
+  $tablepadding = $hr_breakable = $showfunc = $hr_ignwhite =
+  $hr_ignkeysubst = $inputTextSize = $mime_types = $allow_annotate =
+  $allow_markup = $use_java_script = $edit_option_form =
+  $show_subdir_lastmod = $show_log_in_markup =
+  $tabstop = $use_moddate = $gzip_open = undef;
+
+ at DIFFTYPES = qw(h H u c s);
+ at DIFFTYPES{@DIFFTYPES} = (
+  {
+    'descr'   => 'colored',
+    'opts'    => ['-u'],
+    'colored' => 1,
+  },
+  {
+    'descr'   => 'long colored',
+    'opts'    => ['--unified=15'],
+    'colored' => 1,
+  },
+  {
+    'descr'   => 'unified',
+    'opts'    => ['-u'],
+    'colored' => 0,
+  },
+  {
+    'descr'   => 'context',
+    'opts'    => ['-c'],
+    'colored' => 0,
+  },
+  {
+    'descr'   => 'side by side',
+    # width=168 should be enough to support 80 character line lengths
+    'opts'    => ['--side-by-side', '--width=168'],
+    'colored' => 0,
+  },
+);
+
+ at LOGSORTKEYS = qw(cvs date rev);
+ at LOGSORTKEYS{@LOGSORTKEYS} = (
+  { descr => 'Not sorted',  },
+  { descr => 'Commit date', },
+  { descr => 'Revision',    },
+);
+
+##### End of configuration variables #####
+
+my $pathinfo = '';
+if (defined($ENV{PATH_INFO}) && $ENV{PATH_INFO} ne '') {
+  ($pathinfo) = ($ENV{PATH_INFO} =~ VALID_PATH)
+    or fatal('500 Internal Error',
+             'Illegal PATH_INFO in environment: <code>%s</code>',
+             $ENV{PATH_INFO});
+}
+if ($ENV{SCRIPT_NAME}) {
+  ($scriptname) = ($ENV{SCRIPT_NAME} =~ VALID_PATH)
+    or fatal('500 Internal Error',
+             'Illegal SCRIPT_NAME in environment: <code>%s</code>',
+             $ENV{SCRIPT_NAME});
+}
+
+$scriptname    = '' unless defined($scriptname);
+
+$where         =  $pathinfo;
+$doCheckout    =  $where =~ s|^/$CheckoutMagic/|/|o;
+$where         =~ s|^/||;
+$scriptname    =~ s|^/*|/|;
+
+# Let's workaround thttpd's stupidity..
+if ($scriptname =~ m|/$|) {
+  $pathinfo .= '/';
+  my $re = quotemeta $pathinfo;
+  $scriptname =~ s/$re$//;
+}
+
+# $scriptname : the URI escaped path to this script
+# $where      : the path in the CVS repository (without leading /, or only /)
+# $scriptwhere: the URI escaped $scriptname + '/' + $where
+$scriptname   = uri_escape_path($scriptname);
+$scriptwhere  = join('/', $scriptname, uri_escape_path($where));
+$where        = '/' if ($where eq '');
+
+# In text-based browsers, it's very annoying to have two links per file;
+# skip linking the image for them.
+
+$Browser     = $ENV{HTTP_USER_AGENT} || '';
+$is_links    = ($Browser =~ m`^E?Links `);
+$is_lynx     = ($Browser =~ m`^Lynx/`i);
+$is_w3m      = ($Browser =~ m`^w3m/`i);
+$is_msie     = ($Browser =~ m`MSIE`);
+$is_mozilla3 = ($Browser =~ m`^Mozilla/[3-9]`);
+
+$is_textbased = ($is_links || $is_lynx || $is_w3m);
+
+$nofilelinks = $is_textbased;
+
+# newer browsers accept gzip content encoding
+# and state this in a header
+# (netscape did always but didn't state it)
+# It has been reported that these
+#  braindamaged MS-Internet Exploders claim that they
+# accept gzip .. but don't in fact and
+# display garbage then :-/
+# Turn off gzip if running under mod_perl and no zlib is available,
+# piping does not work as expected inside the server.
+$maycompress = (
+  ((defined($ENV{HTTP_ACCEPT_ENCODING})
+    && $ENV{HTTP_ACCEPT_ENCODING} =~ /gzip/)
+   || $is_mozilla3)
+  && !$is_msie
+  && !(defined($ENV{MOD_PERL}) && !HAS_ZLIB)
+);
+
+# Variables that will be sticky in all constructed links/query strings.
+ at stickyvars =
+  qw(cvsroot hideattic ignorecase sortby logsort f only_with_tag ln);
+
+#
+# Load configuration.
+#
+if (-f $config) {
+  do "$config"
+    or fatal("500 Internal Error",
+             'Error in loading configuration file: %s<br /><br />%s<br />',
+             $config, $@);
+} else {
+  fatal("500 Internal Error",
+        'Configuration not found.  Set the variable <code>$config</code> in cvsweb.cgi to your <b>cvsweb.conf</b> configuration file first.');
+}
+
+# Try to find a readable dir where we can cd into.  Some abs_path()
+# implementations as well as various cvs operations require such a dir to
+# work properly.
+{
+  local $^W = 0;
+  if (!-r cwd()) {
+    for my $dir (tmpdir(), rootdir()) {
+      last if (-r $dir && chdir($dir));
+    }
+  }
+}
+
+$CSS = $cssurl ?
+  sprintf("<link rel=\"stylesheet\" type=\"text/css\" href=\"%s\" />\n",
+          htmlquote($cssurl)) : '';
+
+# --- input parameters
+
+my %query = ();
+if (defined($ENV{QUERY_STRING})) {
+  for my $p (split(/[;&]+/, $ENV{QUERY_STRING})) {
+    next unless $p;
+    $p =~ y/+/ /;
+    my ($key, $val) = split(/=/, $p, 2);
+    next unless defined($key);
+    $val = 1 unless defined($val);
+    ($key = uri_unescape($key)) =~ /[[:graph:]]/ or next;
+    ($val = uri_unescape($val)) =~ /[[:graph:]]/ or next;
+    $query{$key} = $val;
+  }
+}
+
+undef %input;
+
+my $t;
+for my $p (qw(graph hideattic hidecvsroot hidenonreadable ignorecase ln copt
+              makeimage options tarball)) {
+  $t = $query{$p};
+  if (defined($t)) {
+    ($input{$p}) = ($t =~ /^([01]|on)$/)
+      or fatal('500 Internal Error',
+               'Invalid boolean value: <code>%s=%s</code>', $p, $t);
+  }
+}
+for my $p (qw(annotate r1 r2 rev tr1 tr2)) {
+  $t = $query{$p};
+  if (defined($t)) {
+    if (($p eq 'r1' || $p eq 'r2') && $t eq 'text') {
+      # Special case for the "Use text field" option in the log view diff form.
+      $input{$p} = $t;
+      next;
+    } elsif ($p eq 'rev' && ($t eq '.' || $t eq 'HEAD')) {
+      # Another special case, allow linking to latest revision using these.
+      $input{$p} = '.';
+      next;
+    }
+    my ($rev, $tag) = split(/:/, $t, 2);
+    ($input{$p}) = ($rev =~ /^(\d+(?:\.\d+)*)$/)
+      or fatal('500 Internal Error',
+               'Invalid revision: <code>%s=%s</code>', $p, $t);
+    if (defined($tag)) {
+      ($tag) = ($tag =~ VALID_TAG1)
+        or fatal('500 Internal Error',
+                 'Invalid tag/branch name in revision: <code>%s=%s</code>',
+                 $p, $t);
+      ($tag) = ($tag =~ VALID_TAG2)
+        or fatal('500 Internal Error',
+                 'Invalid tag/branch name in revision: <code>%s=%s</code>',
+                 $p, $t);
+      $input{$p} .= ':' . $tag;
+    }
+  }
+}
+$t = defined($query{only_with_tag}) ?
+  $query{only_with_tag} : $query{only_on_branch}; # Backwards compatibility.
+if (defined($t)) {
+  ($input{only_with_tag}) = ($t =~ VALID_TAG1)
+    or fatal('500 Internal Error',
+             'Invalid tag/branch name: <code>%s</code>', $t);
+  ($input{only_with_tag}) = ($t =~ VALID_TAG2)
+    or fatal('500 Internal Error',
+             'Invalid tag/branch name: <code>%s</code>', $t);
+}
+$t = $query{logsort};
+if (defined($t)) {
+  ($input{logsort}) = ($t =~ /^(cvs|date|rev)$/)
+    or fatal('500 Internal Error',
+             'Unsupported log sort key: <code>%s</code>', $t);
+}
+$t = $query{f};
+if (defined($t)) {
+  ($input{f}) = ($t =~ /^(([hH]|[ucs]c?)|ext\d*)$/)
+    or fatal('500 Internal Error',
+             'Unsupported diff format: <code>%s</code>', $t);
+}
+$t = $query{sortby};
+if (defined($t)) {
+  ($input{sortby}) = ($t =~ /^(file|date|rev|author|log)$/)
+    or fatal('500 Internal Error',
+             'Unsupported dir sort key: <code>%s</code>', $t);
+}
+$t = $query{'content-type'};
+if (defined($t)) {
+  ($input{'content-type'}) = ($t =~ m|^([-0-9A-Za-z]+/[-0-9A-Za-z\.]+)$|)
+    or fatal('500 Internal Error',
+             'Unsupported content type: <code>%s</code>', $t);
+}
+$t = $query{cvsroot};
+if (defined($t)) {
+  ($input{cvsroot}) = ($t =~ /^([[:print:]]+)$/)
+    or fatal('500 Internal Error',
+             'Invalid symbolic CVS root name: <code>%s</code>', $t);
+}
+$t = $query{path};
+if (defined($t)) {
+  ($input{path}) = ($t =~ VALID_PATH)
+    or fatal('500 Internal Error',
+             'Invalid path: <code>%s</code>', $t);
+}
+undef($t);
+undef(%query);
+
+# --- end input parameters
+
+#
+# CVS roots
+#
+my $rootfound = 0;
+for (my $i = 0; $i < scalar(@CVSrepositories); $i += 2) {
+  my $key = $CVSrepositories[$i];
+  my ($descr, $root) = @{$CVSrepositories[$i+1]};
+  $root = canonpath($root);
+  unless (-d $root) {
+    warn("Root '$root' defined in \@CVSrepositories is not a directory, " .
+         'entry ignored');
+    next;
+  }
+  $rootfound ||= 1;
+  $cvstreedefault = $key unless defined($cvstreedefault);
+  $CVSROOTdescr{$key} = $descr;
+  $CVSROOT{$key} = $root;
+  push(@CVSROOT, $key);
+}
+unless ($rootfound) {
+  fatal('500 Internal Error',
+        'No valid CVS roots found!  See <code>@CVSrepositories</code> in ' .
+        'the configuration file (<code>%s</code>).',
+        $config);
+}
+undef $rootfound;
+
+#
+# Default CVS root
+#
+if (!defined($CVSROOT{$cvstreedefault})) {
+  fatal("500 Internal Error",
+        '<code>$cvstreedefault</code> points to a repository (%s) not ' .
+        'defined in <code>@CVSrepositories</code> in your configuration ' .
+        'file (<code>%s</code>).',
+        $cvstreedefault,
+        $config);
+}
+
+$DEFAULTVALUE{cvsroot} = $cvstreedefault;
+
+while (my ($key, $defval) = each %DEFAULTVALUE) {
+
+  # Replace not given parameters with defaults.
+  next unless (defined($defval) && $defval =~ /\S/ && !defined($input{$key}));
+
+  # Empty checkboxes in forms return nothing, so we define a helper variable
+  # in these forms (copt) which indicates that we just set parameters with a
+  # checkbox.
+  if ($input{copt}) {
+
+    # 'copt' is set -> the result of empty input checkbox
+    # -> set to zero (disable) if default is a boolean (0|1).
+    $input{$key} = 0 if ($defval eq '0' || $defval eq '1');
+
+  } else {
+
+    # 'copt' isn't set --> empty input is not the result
+    # of empty input checkbox --> set default.
+    $input{$key} = $defval;
+  }
+}
+
+$barequery = "";
+my @barequery;
+foreach (@stickyvars) {
+
+  # construct a query string with the sticky non default parameters set
+  if (defined($input{$_})
+      && !(defined($DEFAULTVALUE{$_}) && $input{$_} eq $DEFAULTVALUE{$_}))
+  {
+    push(@barequery, join('=', uri_escape($_), uri_escape($input{$_})));
+  }
+}
+
+if ($allow_enscript) {
+  push(@DIFFTYPES, qw(uc cc sc));
+  @DIFFTYPES{qw(uc cc sc)} = (
+    {
+     'descr'   => 'unified, colored',
+     'opts'    => ['-u'],
+     'colored' => 0,
+    },
+    {
+     'descr'   => 'context, colored',
+     'opts'    => ['-c'],
+     'colored' => 0,
+    },
+    {
+     'descr'   => 'side by side, colored',
+     # width=168 should be enough to support 80 character line lengths
+     'opts'    => ['--side-by-side', '--width=168'],
+     'colored' => 0,
+    },
+  );
+} else {
+  # No Enscript -> respect difftype, but don't offer colorization.
+  if ($input{f} && $input{f} =~ /^([ucs])c$/) {
+    $input{f} = $1;
+  }
+}
+
+# is there any query ?
+if (@barequery) {
+  $barequery = join (';', @barequery);
+  $query     = "?$barequery";
+  $barequery = ";$barequery";
+} else {
+  $query = "";
+}
+undef @barequery;
+
+if (defined($input{path})) {
+  redirect("$scriptname/$input{path}$query");
+}
+
+# get actual parameters
+{
+  my $sortby = $input{sortby} || 'file';
+  $bydate    = 0;
+  $byrev     = 0;
+  $byauthor  = 0;
+  $bylog     = 0;
+  $byfile    = 0;
+  if ($sortby eq 'date') {
+    $bydate = 1;
+  } elsif ($sortby eq 'rev') {
+    $byrev = 1;
+  } elsif ($sortby eq 'author') {
+    $byauthor = 1;
+  } elsif ($sortby eq 'log') {
+    $bylog = 1;
+  } else {
+    $byfile = 1;
+  }
+}
+
+$defaultDiffType = $input{f};
+
+$logsort = $input{logsort};
+
+# alternate CVS-Tree, configured in cvsweb.conf
+if ($input{cvsroot} && $CVSROOT{$input{cvsroot}}) {
+  $cvstree = $input{cvsroot};
+} else {
+  $cvstree = $cvstreedefault;
+}
+
+$cvsroot = $CVSROOT{$cvstree};
+
+# create icons out of description
+foreach my $k (keys %ICONS) {
+  my ($itxt, $ipath, $iwidth, $iheight) = @{$ICONS{$k}};
+  no strict 'refs';
+  if ($ipath) {
+    ${"${k}icon"} =
+      sprintf('<img src="%s" alt="%s" border="0" width="%d" height="%d" />',
+              htmlquote($ipath), htmlquote($itxt), $iwidth, $iheight);
+  } else {
+    ${"${k}icon"} = $itxt;
+  }
+}
+
+my $config_cvstree = "$config-$cvstree";
+
+# Do some special configuration for cvstrees
+if (-f $config_cvstree) {
+  do "$config_cvstree"
+    or fatal("500 Internal Error",
+             'Error in loading configuration file: %s<br /><br />%s<br />',
+             $config_cvstree, $@);
+}
+undef $config_cvstree;
+
+$re_prcategories  = '(?:' . join ('|', @prcategories) . ')' if @prcategories;
+$re_prkeyword     = quotemeta($prkeyword) if defined($prkeyword);
+$prcgi           .= '%s' if defined($prcgi) && $prcgi !~ /%s/;
+
+$fullname         = catfile($cvsroot, $where);
+
+my $rewrite = 0;
+if ($pathinfo =~ m|//|) {
+  $pathinfo =~ y|/|/|s;
+  $rewrite = 1;
+}
+if (-d $fullname) {
+  if ($pathinfo !~ m|/$|) {
+    $pathinfo .= '/';
+    $rewrite   = 1;
+  }
+} elsif ($pathinfo =~ m|/$|) {
+  chop $pathinfo;
+  $rewrite = 1;
+}
+if ($rewrite) {
+  redirect($scriptname . uri_escape_path($pathinfo) . $query, 1);
+}
+undef $rewrite;
+
+undef $pathinfo;
+
+if (!-d $cvsroot) {
+  fatal("500 Internal Error",
+        '$CVSROOT not found!<p>The server on which the CVS tree lives is probably down.  Please try again in a few minutes.');
+}
+
+#
+# Short-circuit forbidden things.  Note that $fullname should not change
+# after this, because the rest of the code assumes this check has already
+# been done.
+#
+fatal('403 Forbidden', 'Access to %s forbidden.', $where)
+  if forbidden($fullname);
+
+#
+# Handle tarball downloads before any headers are output.
+#
+if ($input{tarball}) {
+  fatal('403 Forbidden', 'Downloading tarballs is prohibited.')
+    unless $allow_tar;
+
+  my ($module)  =  ($where =~ m,^/?(.*),);    # untaint
+  $module       =~ s,/([^/]*)$,,;
+  my ($ext)     =  ($1 =~ /(\.t(?:ar\.)?gz|\.zip)$/);
+  my ($basedir) =  ($module =~ m,([^/]+)$,);
+
+  if ($basedir eq '' || $module eq '') {
+    fatal('500 Internal Error',
+          'You cannot download the top level directory.');
+  }
+
+  my $istar = ($ext eq '.tar.gz' || $ext eq '.tgz');
+  if ($istar) {
+    fatal('500 Internal Error', 'tar command not found.') unless $CMD{tar};
+    fatal('500 Internal Error', 'gzip command not found.') unless $CMD{gzip};
+  }
+  my $iszip = ($ext eq '.zip');
+  if ($iszip && !$CMD{zip}) {
+    fatal('500 Internal Error', 'zip command not found.');
+  }
+  if (!$istar && !$iszip) {
+    fatal('500 Internal Error', 'Unsupported archive type.');
+  }
+
+  my $tmpexportdir;
+  eval {
+    local $SIG{__DIE__};
+    # Don't use the CLEANUP argument to tempdir() here, since we might be under
+    # mod_perl (the process runs for a long time), unlink explicitly later.
+    $tmpexportdir = tempdir('.cvsweb.XXXXXXXX', TMPDIR => 1);
+  };
+  if ($@) {
+    fatal('500 Internal Error', 'Unable to make temporary directory: %s', $@);
+  }
+  if (!chdir($tmpexportdir)) {
+    fatal('500 Internal Error',
+          "Can't cd to temporary directory %s: %s", $tmpexportdir, $!);
+  }
+
+  my @fatal;
+  my $tag = $input{only_with_tag} || 'HEAD';
+  $tag = 'HEAD' if ($tag eq 'MAIN');
+
+  my @cmd =
+    ($CMD{cvs}, @cvs_options, '-Qd', $cvsroot, 'export', '-r', $tag,
+     '-d', $basedir, $module);
+  my $export_err;
+  my ($errcode, $err) = runproc(\@cmd, '2>', \$export_err);
+  if ($errcode) {
+    @fatal =
+      ('500 Internal Error',
+       'Export failure (exit status %s), output: <pre>%s</pre>',
+       $errcode, $err || $export_err);
+
+  } else {
+
+    $| = 1;    # Essential to get the buffering right.
+    local (*TAR_OUT);
+
+    my (@cmd, $ctype);
+    if ($istar) {
+      my @tar = ($CMD{tar}, @tar_options, '-cf', '-', $basedir);
+      my @gzip = ($CMD{gzip}, @gzip_options, '-c');
+      push(@cmd, \@tar, '|', \@gzip);
+      $ctype = 'application/x-gzip';
+    } elsif ($iszip) {
+      my @zip = ($CMD{zip}, @zip_options, '-r', '-', $basedir);
+      push(@cmd, \@zip, \'');
+      $ctype = 'application/zip';
+    }
+    push(@cmd, '>pipe', \*TAR_OUT);
+
+    my ($h, $err) = startproc(@cmd);
+    if ($h) {
+      print "Content-Type: $ctype\r\n\r\n";
+      local $/ = undef;
+      print <TAR_OUT>;
+      $h->finish();
+    } else {
+      @fatal = ('500 Internal Error',
+                '%s failure (exit status %s), output: <pre>%s</pre>',
+                $istar ? 'Tar' : 'Zip', $? >> 8 || -1, $err);
+    }
+  }
+
+  # Clean up.
+  rmtree($tmpexportdir);
+
+  &fatal(@fatal) if @fatal;
+
+  exit;
+}
+
+##############################
+# View a directory
+###############################
+if (-d $fullname) {
+
+  my $dh = do { local (*DH); };
+  opendir($dh, $fullname) or fatal("404 Not Found", '%s: %s', $where, $!);
+  my @dir = grep(!forbidden(catfile($fullname, $_)), readdir($dh));
+  closedir($dh);
+  my @subLevelFiles = findLastModifiedSubdirs(@dir)
+    if ($show_subdir_lastmod);
+  my @unreadable = getDirLogs($cvsroot, $where, @subLevelFiles);
+
+  if ($where eq '/') {
+    html_header($defaulttitle);
+    $long_intro =~ s/!!CVSROOTdescr!!/$CVSROOTdescr{$cvstree}/g;
+    print $long_intro;
+  } else {
+    html_header($where);
+    my $html = (-f catfile($fullname, 'README.cvs.html,v') ||
+                -f catfile($fullname, 'Attic', 'README.cvs.html,v'));
+    my $text = (!$html &&
+                (-f catfile($fullname, 'README.cvs,v') ||
+                 -f catfile($fullname, 'Attic', 'README.cvs,v')));
+    if ($html || $text) {
+      my $rev = $input{only_with_tag} || 'HEAD';
+      my $cr = abs_path($cvsroot) || $cvsroot;
+      my $co = "$where/README.cvs.html" if $html;
+      $co ||= "$where/README.cvs" if $text;
+      # abs_path() taints when run as a CGI...
+      if ($cr =~ VALID_PATH) {
+        $cr = $1;
+      } else {
+        fatal('500 Internal Error', 'Illegal CVS root: <code>%s</code>', $cr);
+      }
+      my @cmd = ($CMD{cvs}, @cvs_options, '-d', $cr, 'co', '-p', "-r$rev",$co);
+      local (*CVS_OUT, *CVS_ERR);
+      my ($h, $err) = startproc(\@cmd, \"", '>pipe', \*CVS_OUT,
+                                '2>pipe', \*CVS_ERR);
+      fatal('500 Internal Error', $err) unless $h;
+      if ($html) {
+        local $/ = undef;
+        print <CVS_OUT>;
+      } else {
+        print "<p>\n";
+        while (<CVS_OUT>) {
+          chomp;
+          print htmlquote($_), '<br />';
+        }
+        print "</p>";
+      }
+      $h->finish();
+    }
+    print $short_instruction;
+  }
+
+  if ($use_descriptions &&
+      open(DESC, catfile($cvsroot, 'CVSROOT', 'descriptions'))) {
+    while (<DESC>) {
+      chomp;
+      my ($dir, $description) = /(\S+)\s+(.*)/;
+      $descriptions{$dir} = $description;
+    }
+    close(DESC);
+  }
+
+  print "<p><a name=\"dirlist\"></a></p>\n";
+
+  # give direct access to dirs
+  if ($where eq '/') {
+    chooseMirror();
+    chooseCVSRoot();
+
+  } else {
+    print '<p>Current directory: <b>', clickablePath($where, 0), '</b>';
+    if ($cvshistory_url) {
+      (my $d = $where) =~ s|^/*(.*?)/*$|$1|;
+      print ' - ', history_link($d, '');
+    }
+    print "</p>\n";
+    print "<p>Current tag: <b>", htmlquote($input{only_with_tag}), "</b></p>\n"
+      if $input{only_with_tag};
+  }
+
+  print "<hr />\n";
+
+  my $infocols = 1;
+
+  printf(<<EOF, 'Directory index of ' . htmlquote($where));
+<table class="dir" width="100%%" cellspacing="0" cellpadding="$tablepadding" summary="%s">
+<tr>
+EOF
+  printf('<th colspan="2"%s>', ($byfile ? ' class="sorted"' : ''));
+
+  if ($byfile) {
+    print 'File';
+  } else {
+    print &link('File',
+                sprintf('./%s#dirlist', toggleQuery('sortby', 'file')));
+  }
+  print "</th>\n";
+
+  # Do not display the other column headers if we do not have any files
+  # with revision information.
+  if (scalar(%fileinfo)) {
+    $infocols++;
+    printf('<th%s>', ($byrev ? ' class="sorted"' : ''));
+
+    if ($byrev) {
+      print 'Rev.';
+    } else {
+      print &link('Rev.',
+                  sprintf('./%s#dirlist', toggleQuery('sortby', 'rev')));
+    }
+    print "</th>\n";
+    $infocols++;
+    printf('<th%s>', ($bydate ? ' class="sorted"' : ''));
+
+    if ($bydate) {
+      print 'Age';
+    } else {
+      print &link('Age',
+                  sprintf('./%s#dirlist', toggleQuery('sortby', 'date')));
+    }
+    print "</th>\n";
+
+    if ($show_author) {
+      $infocols++;
+      printf('<th%s>', ($byauthor ? ' class="sorted"' : ''));
+
+      if ($byauthor) {
+        print 'Author';
+      } else {
+        print
+          &link('Author',
+                sprintf('./%s#dirlist', toggleQuery('sortby', 'author')));
+      }
+      print "</th>\n";
+    }
+    $infocols++;
+    printf('<th%s>', ($bylog ? ' class="sorted"' : ''));
+
+    if ($bylog) {
+      print 'Last log entry';
+    } else {
+      print &link('Last log entry',
+                  sprintf('./%s#dirlist', toggleQuery('sortby', 'log')));
+    }
+    print "</th>\n";
+  } elsif ($use_descriptions) {
+    print "<th>Description</th>\n";
+    $infocols++;
+  }
+  print "</tr>\n";
+
+  my $dirrow = 0;
+
+  my $i;
+  lookingforattic:
+  for ($i = 0; $i <= $#dir; $i++) {
+    if ($dir[$i] eq "Attic") {
+      last lookingforattic;
+    }
+  }
+
+  if (!$input{hideattic}
+      && ($i <= $#dir)
+      && opendir($dh, $fullname . '/Attic'))
+  {
+    splice(@dir, $i, 1, grep((s|^|Attic/|, !m|/\.|), readdir($dh)));
+    closedir($dh);
+  }
+
+  my $hideAtticToggleLink =
+    $input{hideattic}
+    ? ''
+    : &link('[hide]', sprintf('./%s#dirlist', &toggleQuery('hideattic')));
+
+  # Sort without the Attic/ pathname.
+  # place directories first
+
+  my $filesexists;
+  my $filesfound;
+
+  foreach my $file (sort { &fileSortCmp } @dir) {
+
+    next if ($file eq curdir());
+
+    # ignore CVS lock and stale NFS files
+    next if ($file =~ /^\#cvs\.|^,|^\.nfs/); # \# for XEmacs cperl-mode...
+
+    # Check whether to show the CVSROOT path
+    next if ($input{hidecvsroot} && $where eq '/' && $file eq 'CVSROOT');
+
+    # Is it a directory?
+    my $isdir = -d catdir($fullname, $file);
+
+    # Ignore non-readable files and directories?
+    next if ($input{hidenonreadable} && (! -r _ || ($isdir && ! -x _)));
+
+    my $attic = '';
+    if ($file =~ s|^Attic/||) {
+      $attic = ' <span class="attic">(in the Attic) ' .
+        $hideAtticToggleLink . '</span>';
+    }
+
+    if ($file eq updir() || $isdir) {
+      next if ($file eq updir() && $where eq '/');
+      my ($rev, $date, $log, $author, $filename, $keywordsubst) =
+        @{$fileinfo{$file}} if (defined($fileinfo{$file}));
+      printf "<tr class=\"%s\">\n<td class=\"dir\" colspan=\"2\">",
+        ($dirrow % 2) ? 'even' : 'odd';
+
+      if ($file eq updir()) {
+        my $url = "../$query";
+        print $nofilelinks ? $backicon : &link($backicon, $url);
+        print '&nbsp;', &link("Parent Directory", $url);
+
+      } else {
+        my $url = './' . uri_escape_path($file) . "/$query";
+        print '<a name="', htmlquote($file), '"></a>';
+        print $nofilelinks ? $diricon : &link($diricon, $url);
+        print '&nbsp;', &link(htmlquote("$file/"), $url), $attic;
+        if ($file eq "Attic") {
+          print ' <span class="attic">',
+            &link('[show]',
+                  sprintf('./%s#dirlist', &toggleQuery('hideattic'))),
+                    '</span>';
+        }
+      }
+
+      # Show last change in dir
+      if ($filename) {
+        print "</td>\n<td>&nbsp;</td>\n<td class=\"age\">";
+        print readableTime(time() - $date, 0) if $date;
+        print "</td>\n<td class=\"author\">", htmlquote($author)
+          if $show_author;
+        print "</td>\n<td class=\"log\">";
+        $filename =~ s%^[^/]+/%%;
+        print &link(htmlquote("$filename/$rev"),
+                    sprintf('%s/%s%s#rev%s',
+                            uri_escape($file), uri_escape($filename),
+                            $query, $rev)), '<br />';
+        if ($log) {
+          print htmlify(substr($log, 0, $shortLogLen), $allow_dir_extra);
+          print '...' if (length($log) > 80);
+        }
+
+      } else {
+        my $dwhere = ($where ne '/' ? $where : '') . $file;
+
+        if ($use_descriptions && defined $descriptions{$dwhere}) {
+          print '<td colspan="', ($infocols - 1), '">';
+          print $descriptions{$dwhere};
+
+        } elsif ($infocols > 1) {
+
+          # close the row with the appropriate number of
+          # columns, so that the vertical seperators are visible
+          my ($cols) = $infocols;
+          while ($cols > 1) {
+            print "</td>\n<td>&nbsp;";
+            $cols--;
+          }
+        }
+      }
+
+      print "</td>\n</tr>\n";
+      $dirrow++;
+
+    } elsif ($file =~ s/,v$//) {
+
+      my $fileurl = ($attic ? 'Attic/' : '') . uri_escape_path($file);
+      my $url     = './' . $fileurl . $query;
+      $filesexists++;
+      next if (!defined($fileinfo{$file}));
+      my ($rev, $date, $log, $author, $filename, $keywordsubst) =
+        @{$fileinfo{$file}};
+      my $isbinary = $keywordsubst eq 'b' ? 1 : 0;
+      $filesfound++;
+
+      printf "<tr class=\"%s\">\n", ($dirrow % 2) ? 'even' : 'odd';
+      printf '<td class="file"%s>', $allow_cvsgraph ? '' : ' colspan="2"';
+
+      my $icon = $isbinary ? $binfileicon : $fileicon;
+      print $nofilelinks ? $icon : &link($icon, $url);
+      print '&nbsp;', &link(htmlquote($file), $url), $attic;
+      print '</td><td class="graph">', graph_link($fileurl) if $allow_cvsgraph;
+      print "</td>\n<td width=\"30\">", display_link($fileurl, $rev);
+      print "</td>\n<td class=\"age\">";
+      print readableTime(time() - $date, 0) if $date;
+      print "</td>\n<td class=\"author\">", htmlquote($author) if $show_author;
+      print "</td>\n<td class=\"log\">";
+
+      if ($log) {
+        print htmlify(substr($log, 0, $shortLogLen), $allow_dir_extra);
+        print '...' if (length $log > 80);
+      }
+      print "</td>\n</tr>";
+      $dirrow++;
+    }
+    print "\n";
+  }
+
+  print "</table>\n";
+
+  if ((my $num = scalar(@unreadable)) && ! $input{hidenonreadable}) {
+    printf(<<EOF, $num, htmlquote(join(', ', @unreadable)));
+<p>
+ <b>NOTE:</b> The following %d unreadable files were ignored:<br />
+ <em>%s</em>
+</p>
+EOF
+  }
+
+  if ($filesexists && !$filesfound) {
+    my $currtag = defined($input{only_with_tag}) ?
+      sprintf(' (%s)', htmlquote($input{only_with_tag})) : '';
+    printf(<<EOF, $filesexists, $currtag);
+<p>
+ <b>NOTE:</b> There are %d files, but none matches the current tag%s.
+</p>
+EOF
+  }
+
+  if ($input{only_with_tag} && (!%tags || !$tags{$input{only_with_tag}})) {
+    %tags = %alltags;
+  }
+
+  if (scalar %tags
+      || $input{only_with_tag}
+      || $edit_option_form
+      || defined($input{options}))
+  {
+    print "<hr />\n";
+  }
+
+  if (scalar %tags || $input{only_with_tag}) {
+    print "<form method=\"get\" action=\"./\">\n<p>\n";
+    foreach my $var (@stickyvars) {
+      printf("<input type=\"hidden\" name=\"$var\" value=\"%s\" />\n",
+             htmlquote($input{$var}))
+        if (defined($input{$var})
+            && (!defined($DEFAULTVALUE{$var})
+                || $input{$var} ne $DEFAULTVALUE{$var})
+            && $var ne 'only_with_tag');
+    }
+    printf(<<EOF, ($use_java_script ? ' onchange="this.form.submit()"' : ''));
+<span class="nowrap">
+<label for="only_with_tag" accesskey="T">Show only files with tag:
+<select id="only_with_tag" name="only_with_tag"%s>
+<option value="">All tags / default branch</option>
+EOF
+    foreach my $tag (reverse sort { lc $a cmp lc $b } keys %tags) {
+      my $selected =
+        defined($input{only_with_tag}) && $input{only_with_tag} eq $tag;
+      printf("<option%s>%s</option>\n",
+             $selected ? ' selected="selected"' : '',
+             htmlquote($tag));
+    }
+    printf(<<EOF, htmlquote($where));
+</select>
+</label></span> <span class="nowrap">
+<label for="path" accesskey="P">Module path or alias:
+<input type="text" id="path" name="path" value="%s" size="15" /></label>
+</span>
+<input type="submit" value="Go" accesskey="G" />
+</p>
+</form>
+EOF
+  }
+
+  if ($allow_tar && $filesfound) {
+    my ($basefile) = ($where =~ m,(?:.*/)?([^/]+),);
+    my $havetar = $CMD{tar} && $CMD{gzip};
+    my $havezip = $CMD{zip};
+    if (defined($basefile) && $basefile ne '' && ($havetar || $havezip)) {
+      my $q = ($query ? "$query;" : '?') . 'tarball=1';
+      print "<hr />\n",
+        '<div style="text-align: center">Download this directory in ';
+      # Mangle the filename so browsers show a reasonable filename to download.
+      my @types = ();
+      $basefile = uri_escape($basefile);
+      push(@types, &link('tarball', "$basefile.tar.gz$q")) if $havetar;
+      push(@types, &link('zip archive', "$basefile.zip$q")) if $havezip;
+      print join(' or ', @types), "</div>\n";
+    }
+  }
+
+  if ($edit_option_form || defined($input{options})) {
+
+    print <<EOF;
+<form method="get" action="./">
+<fieldset>
+<legend>General options</legend>
+<input type="hidden" name="copt" value="1" />
+EOF
+    if ($cvstree ne $cvstreedefault) {
+      print "<input type=\"hidden\" name=\"cvsroot\" value=\"$cvstree\" />\n";
+    }
+    print <<EOF;
+<table summary="General options">
+<tr>
+<td class="opt-label">
+<label for="sortby" accesskey="F">Sort files by:</label>
+</td>
+<td class="opt-value">
+<select id="sortby" name="sortby">
+<option value="">File</option>
+EOF
+    print "<option", $bydate ? ' selected="selected"' : '',
+      " value=\"date\">Age</option>\n";
+    print "<option", $byauthor ? ' selected="selected"' : '',
+      " value=\"author\">Author</option>\n"
+        if $show_author;
+    print "<option", $byrev ? ' selected="selected"' : '',
+      " value=\"rev\">Revision</option>\n";
+    print "<option", $bylog ? ' selected="selected"' : '',
+      " value=\"log\">Log message</option>\n";
+    print <<EOF;
+</select>,
+<label for="ignorecase" accesskey="I">case-insensitive:
+EOF
+    print '<input id="ignorecase" name="ignorecase" type="checkbox"',
+      $input{ignorecase} ? ' checked="checked"' : '',
+        " value=\"1\" /></label>\n";
+    print <<EOF;
+</td>
+<td class="opt-label">
+<label for="hideattic" accesskey="A">Hide files in Attic:</label>
+</td>
+<td class="opt-value">
+EOF
+    print '<input id="hideattic" name="hideattic" type="checkbox"',
+      $input{hideattic} ? ' checked="checked"' : '', ' value="1" />';
+    print <<EOF;
+</td>
+</tr>
+<tr>
+<td class="opt-label">
+<label for="logsort" accesskey="L">Sort log by:</label>
+</td>
+<td class="opt-value">
+EOF
+    printLogSortSelect(0);
+    print <<EOF;
+</td>
+<td class="opt-label">
+<label for="ln" accesskey="N">Show line numbers:</label>
+</td>
+<td class="opt-value">
+EOF
+    print '<input id="ln" name="ln" type="checkbox"',
+      $input{ln} ? ' checked="checked"' : '', " value=\"1\" />\n";
+    print <<EOF;
+</td>
+</tr>
+<tr>
+<td class="opt-label">
+<label for="f" accesskey="D">Diff format:</label>
+</td>
+<td>
+EOF
+    printDiffSelect(0);
+    print <<EOF;
+</td>
+<td colspan="2" class="opt-label">
+<input type="submit" value="Change Options" accesskey="C" />
+</td>
+</tr>
+</table>
+</fieldset>
+</form>
+EOF
+  }
+  html_footer();
+}
+
+###############################
+# View Files
+###############################
+elsif (-f $fullname . ',v') {
+
+  if (defined($input{rev}) || $doCheckout) {
+    &doCheckout($fullname, $input{rev});
+    gzipclose();
+    exit;
+  }
+
+  if (defined($input{annotate}) && $allow_annotate) {
+    &doAnnotate($input{annotate});
+    gzipclose();
+    exit;
+  }
+
+  if (defined($input{r1}) && defined($input{r2})) {
+    &doDiff($fullname,  $input{r1},  $input{tr1},
+            $input{r2}, $input{tr2}, $input{f});
+    gzipclose();
+    exit;
+  }
+
+  if ($allow_cvsgraph && $input{graph}) {
+    if ($input{makeimage}) {
+      doGraph();
+    } else {
+      doGraphView();
+    }
+    gzipclose();
+    exit;
+  }
+
+  &doLog($fullname);
+
+  ##############################
+  # View Diff
+  ##############################
+} elsif ($fullname =~ s/\.diff$//
+         && -f $fullname . ',v' && $input{r1} && $input{r2})
+{
+
+  # $where-diff-removal if 'cvs rdiff' is used
+  # .. but 'cvs rdiff'doesn't support some options
+  # rcsdiff does (-w and -p), so it is disabled
+  # $where =~ s/\.diff$//;
+
+  # Allow diffs using the ".diff" extension so that browsers that default
+  # to the filename in the URL when saving don't save diffs as eg. foo.c.
+  &doDiff($fullname,  $input{r1},  $input{tr1},
+          $input{r2}, $input{tr2}, $input{f});
+  gzipclose();
+  exit;
+
+} elsif (do { (my $tmp = $fullname) =~ s|/([^/]+)$|/Attic/$1|; -f "$tmp,v" }) {
+  # The file has been removed and is in the Attic.
+  # Send a redirect pointing to the file in the Attic.
+  (my $newplace = $scriptwhere) =~ s|/([^/]+)$|/Attic/$1|;
+  if ($ENV{QUERY_STRING} ne "") {
+    redirect("$newplace?$ENV{QUERY_STRING}");
+  } else {
+    redirect($newplace);
+  }
+  exit;
+
+} elsif (0 && (my @files = &safeglob($fullname . ",v"))) {
+  http_header("text/plain");
+  print "You matched the following files:\n";
+  print join ("\n", @files);
+
+  # Find the tags from each file
+  # Display a form offering diffs between said tags
+} else {
+
+  # Assume it's a module name with a potential path following it.
+  my $module;
+  my $xtra = (($module = $where) =~ s|(/.*)||) ? $1 : '';
+
+  # Is there an indexed version of modules?
+  my $fh = do { local (*FH); };
+  if (open($fh, catfile($cvsroot, 'CVSROOT', 'modules'))) {
+    while (<$fh>) {
+      if (/^(\S+)\s+(\S+)/o
+          && $module eq $1
+          && $module ne $2
+          && -d "$cvsroot/$2")
+      {
+        close($fh);
+        redirect("$scriptname/$2$xtra$query");
+      }
+    }
+    close($fh);
+  }
+  fatal("404 Not Found", '%s: no such file or directory', $where);
+}
+
+gzipclose();
+
+## End MAIN
+
+
+sub printDiffSelect($)
+{
+  my ($use_java_script) = @_;
+
+  print '<select id="f" name="f"';
+  print ' onchange="this.form.submit()"' if $use_java_script;
+  print ">\n";
+
+  for my $difftype (@DIFFTYPES) {
+    printf("<option value=\"%s\"%s>%s</option>\n",
+           $difftype, $input{f} eq $difftype ? ' selected="selected"' : '',
+           "\u$DIFFTYPES{$difftype}{descr}");
+  }
+
+  print "</select>";
+}
+
+
+sub printDiffSelectStickyVars()
+{
+  while (my ($key, $val) = each %input) {
+    next if ($key eq 'f');
+    next if (defined($DEFAULTVALUE{$key}) && $DEFAULTVALUE{$key} eq $val);
+    print "<input type=\"hidden\" name=\"", htmlquote($key), "\" value=\"",
+      htmlquote($val), "\" />\n";
+  }
+}
+
+
+sub printLogSortSelect($)
+{
+  my ($use_java_script) = @_;
+
+  print '<select id="logsort" name="logsort"';
+  print ' onchange="this.form.submit()"' if $use_java_script;
+  print ">\n";
+
+  for my $sortkey (@LOGSORTKEYS) {
+    printf("<option value=\"%s\"%s>%s</option>\n",
+           $sortkey, $logsort eq $sortkey ? ' selected="selected"' : '',
+           "\u$LOGSORTKEYS{$sortkey}{descr}");
+  }
+
+  print "</select>";
+}
+
+
+#
+# Find the last modified, version controlled files in the given directories.
+# Compares solely based on modification timestamps.  Files in the returned list
+# are without the ,v suffix, and unreadable files have been filtered out.
+#
+sub findLastModifiedSubdirs(@)
+{
+  my (@dirs) = @_;
+
+  my @files;
+  foreach my $dirname (@dirs) {
+    next if ($dirname eq curdir() || $dirname eq updir());
+    my $dir = catdir($fullname, $dirname);
+    next if (!-d $dir);
+
+    my $dh = do { local (*DH); };
+    opendir($dh, $dir) or next;
+    my (@filenames) = grep(!forbidden(catfile($dir, $_)), readdir($dh));
+    closedir($dh);
+
+    my $lastmod     = undef;
+    my $lastmodtime = undef;
+    foreach my $filename (@filenames) {
+      ($filename) =
+        (catfile($dirname, $filename) =~ VALID_PATH) or next; # untaint
+      my ($file) = catfile($fullname, $filename);
+      next if ($filename !~ /,v$/o || !-f $file || !-r _);
+      my $modtime = -M _;
+      if (!defined($lastmod) || $modtime < $lastmodtime) {
+        ($lastmod    = $filename) =~ s/,v$//;
+        $lastmodtime = $modtime;
+      }
+    }
+    push(@files, $lastmod) if (defined($lastmod));
+  }
+  return @files;
+}
+
+
+sub htmlify_sub(&$)
+{
+  (my $proc, local $_) = @_;
+  my @a = split(m|(<a [^>]+>[^<]*</a>)|i);
+  my $linked;
+  my $result = '';
+
+  while (($_, $linked) = splice(@a, 0, 2)) {
+    &$proc();
+    $result .= $_      if defined($_);
+    $result .= $linked if defined($linked);
+  }
+
+  return $result;
+}
+
+
+sub htmlify($;$)
+{
+  (local $_, my $extra) = @_;
+
+  $_ = htmlquote($_);
+
+  # get URL's as link
+  s{
+    ((https?|ftp)://.+?)([\s\']|&(quot|[lg]t);)
+   }{
+     &link($1, htmlunquote($1)) . $3
+   }egx;
+
+  # get e-mails as link
+  $_ = htmlify_sub {
+    s<
+      ([\w+=\-.!]+@[\w\-]+(?:\.[\w\-]+)+)
+     ><
+       &link($1, "mailto:$1")
+     >egix;
+  } $_;
+
+  if ($extra) {
+
+    # get PR #'s as link: "PR#nnnn" "PR: nnnn, ..." "PR nnnn, ..." "bin/nnnn"
+    if (defined($prcgi) && defined($re_prkeyword)) {
+      my $prev;
+
+      do {
+        $prev = $_;
+
+        $_ = htmlify_sub {
+          s{
+            (\b$re_prkeyword[:\#]?\s*
+             (?:
+              \#?
+              \d+[,\s]\s*
+             )*
+             \#?)
+            (\d+)\b
+           }{
+             $1 . &link($2, sprintf($prcgi, $2))
+           }egix;
+        } $_;
+      } while ($_ ne $prev);
+
+      if (defined($re_prcategories)) {
+        $_ = htmlify_sub {
+          s{
+            (\b$re_prcategories/(\d+)\b)
+           }{
+             &link($1, sprintf($prcgi, $2))
+           }egox;
+        } $_;
+      }
+    }
+
+    # get manpage specs as link: "foo.1" "foo(1)"
+    if (defined($mancgi)) {
+      $_ = htmlify_sub {
+        s{
+          (
+           \b ( \w[\w+\-.]* (?: ::\w[\w+\-.]*)* )
+           (?:
+            \( ([0-9n]) \) \B
+            |
+            \. ([0-9n]) \b
+           )
+          )
+         }{
+            my($text, $name, $section) = ($1, $2, defined($3) ? $3 : $4);
+            ($name =~ /[A-Za-z]/ && $name !~ /\.(:|$)/)
+             ? &link($text, sprintf($mancgi, $section, uri_escape($name)))
+              : $text;
+         }egx;
+      } $_;
+    }
+  }
+
+  return $_;
+}
+
+
+sub spacedHtmlText($;$)
+{
+  (local $_, my $ts) = @_;
+  return '' unless defined($_);
+  $ts ||= $tabstop;
+
+  # Cut trailing spaces and tabs
+  s/[ \t]+$//;
+
+  if (defined($ts)) {
+
+    # Expand tabs
+    1 while s/(.*)(\t+)/' ' x (length($2) * $ts - length($1) % $ts)/e;
+  }
+
+  # replace <tab> and <space> (\001 is to protect us from htmlify)
+  # gzip can make excellent use of this repeating pattern :-)
+  if ($hr_breakable) {
+
+    # make every other space 'breakable'
+    s/  / \001nbsp;/g;    # 2 * <space>
+                          # leave single space as it is
+  } else {
+    s/ /\001nbsp;/g;
+  }
+
+  $_ = htmlify($_, $allow_source_extra);
+
+  # unescape
+  y/\001/&/;
+
+  return $_;
+}
+
+
+# Note that this doesn't htmlquote the first argument...
+sub link($$)
+{
+  my ($name, $url) = @_;
+  return sprintf('<a href="%s">%s</a>', htmlquote($url), $name);
+}
+
+
+sub revcmp($$)
+{
+  my ($rev1, $rev2) = @_;
+
+  # make no comparison for a tag or a branch
+  return 0 if $rev1 =~ /[^\d.]/ || $rev2 =~ /[^\d.]/;
+
+  my (@r1) = split(/\./, $rev1);
+  my (@r2) = split(/\./, $rev2);
+  my ($a, $b);
+
+  while (($a = shift(@r1)) && ($b = shift(@r2))) {
+    return $a <=> $b unless ($a == $b);
+  }
+  if (@r1) { return  1; }
+  if (@r2) { return -1; }
+  return 0;
+}
+
+
+sub fatal($$@)
+{
+  my ($errcode, $format, @args) = @_;
+  print "Status: $errcode\r\n";
+  html_header('Error');
+  print '<div id="error">Error: ',
+    sprintf($format, map(htmlquote($_), @args)), "</div>\n";
+  html_footer();
+  exit(1);
+}
+
+
+#
+# Sends a redirect to the given URL.
+#
+sub redirect($;$)
+{
+  my ($url, $permanent) = @_;
+  my ($status, $text);
+  if ($permanent) {
+    $status = '301';
+    $text   = 'Moved Permanently';
+  } else {
+    $status = '302';
+    $text   = 'Found';
+  }
+  print "Status: $status $text\r\n", "Location: $url\r\n";
+  html_header($text);
+  print "<p>This document has moved ", &link('here', $url), ".</p>\n";
+  html_footer();
+  exit(1);
+}
+
+
+sub safeglob($)
+{
+  my ($filename) = @_;
+
+  (my $dirname = $filename) =~ s|/[^/]+$||;
+  $filename =~ s|.*/||;
+
+  my @results;
+  my $dh = do { local (*DH); };
+  if (opendir($dh, $dirname)) {
+    my $glob = $filename;
+    my $t;
+
+    #   transform filename from glob to regex.  Deal with:
+    #   [, {, ?, * as glob chars
+    #   make sure to escape all other regex chars
+    $glob =~ s/([\.\(\)\|\+])/\\$1/g;
+    $glob =~ s/\*/.*/g;
+    $glob =~ s/\?/./g;
+    $glob =~ s/{([^}]+)}/($t = $1) =~ s-,-|-g; "($t)"/eg;
+    $glob = qr/^$glob$/;
+
+    foreach (readdir($dh)) {
+      if ($_ =~ $glob && $_ =~ VALID_PATH) {
+        push(@results, catfile($dirname, $1)); # untaint
+      }
+    }
+    closedir($dh);
+  }
+
+  return @results;
+}
+
+
+#
+# Searches @command_path for the given executable file.
+#
+sub search_path($)
+{
+  my ($command) = @_;
+  for my $d (@command_path) {
+    my $cmd = catfile($d, $command);
+    return $cmd if (-x $cmd && !-d _);
+  }
+  return '';
+}
+
+
+#
+# Gets the enscript(1) highlight mode corresponding to the given filename,
+# or undef if unsupported.
+#
+sub getEnscriptHL($)
+{
+  return undef unless $allow_enscript;
+  my ($filename) = @_;
+  while (my ($hl, $regex) = each %enscript_types) {
+    return $hl if ($filename =~ $regex);
+  }
+  return undef;
+}
+
+
+#
+# Gets the MIME type for the given file name.
+#
+sub getMimeType($;$)
+{
+  my ($fullname, $binary) = @_;
+  $binary = ($keywordsubstitution && $keywordsubstitution =~ /b/)
+    unless defined($binary);
+
+  (my $suffix = $fullname) =~ s/^.*\.([^.]*)$/$1/;
+
+  my $mimetype = $MTYPES{$suffix};
+  $mimetype  ||= $MimeTypes->mimeTypeOf($fullname) if defined($MimeTypes);
+
+  if (!$mimetype && $suffix ne '*' && -f $mime_types && -r _) {
+    my $fh = do { local (*FH); };
+    if (open($fh, $mime_types)) {
+      my $re = sprintf('^\s*(\S+\/\S+)\s.+\b%s\b', quotemeta($suffix));
+      $re = qr/$re/;
+      while (my $line = <$fh>) {
+        if ($line =~ $re) {
+          $mimetype = $1;
+          $MTYPES{$suffix} = $mimetype;
+          last;
+        }
+      }
+      close($fh);
+    } else {
+      warn("Can't open MIME types file $mime_types for reading: $!");
+    }
+  }
+
+  $mimetype ||= $MTYPES{'*'};
+  $mimetype ||= $binary ? 'application/octet-stream' : 'text/plain';
+  return $mimetype;
+}
+
+
+###############################
+# read first lines like head(1)
+###############################
+sub head($;$)
+{
+  my ($fh, $linecount) = @_;
+  $linecount ||= 10;
+
+  my @buf;
+  if ($linecount > 0) {
+    for (my $i = 0; !eof($fh) && $i < $linecount; $i++) {
+      push @buf, scalar <$fh>;
+    }
+  } else {
+    @buf = <$fh>;
+  }
+  return @buf;
+}
+
+
+###############################
+# scan vim and Emacs directives
+###############################
+sub scan_directives(@)
+{
+  my $ts = undef;
+
+  for (@_) {
+    $ts = $1 if /\b(?:ts|tabstop|tab-width)[:=]\s*([1-9]\d*)\b/;
+  }
+
+  ('tabstop' => $ts);
+}
+
+
+sub openOutputFilter()
+{
+  return unless $output_filter;
+
+  open(STDOUT, "|-") and return;
+
+  # child of child
+  open(STDERR, '>', devnull());
+  exec($output_filter) or exit -1;
+}
+
+
+###############################
+# show Annotation
+###############################
+sub doAnnotate($)
+{
+  my ($rev) = @_;
+  (my $pathname = $where) =~ s|((?<=/)Attic/)?[^/]*$||;
+  (my $filename = $where) =~ s|^.*/||;
+
+  # This annotate version is based on the cvs annotate-demo Perl script by
+  # Cyclic Software.  It was written by Cyclic Software,
+  # http://www.cyclic.com/, and is in the public domain.
+  # We could abandon the use of rlog, rcsdiff and co using
+  # the cvs server in a similiar way one day (..after rewrite).
+
+  local (*CVS_IN, *CVS_OUT);
+  my $annotate_err;
+  my ($h, $err) =
+    startproc([ $CMD{cvs}, @annotate_options, 'server' ],
+              '<pipe', \*CVS_IN, '>pipe', \*CVS_OUT,
+              '2>', \$annotate_err);
+  fatal('500 Internal Error',
+        'Annotate failure (exit status %s), output: <pre>%s</pre>',
+        $? >> 8 || -1, $err)
+    unless $h;
+
+  # OK, first send the request to the server.  A simplified example is:
+  #     Root /home/kingdon/zwork/cvsroot
+  #     Argument foo/xx
+  #     Directory foo
+  #     /home/kingdon/zwork/cvsroot/foo
+  #     Directory .
+  #     /home/kingdon/zwork/cvsroot
+  #     annotate
+  # although as you can see there are a few more details.
+
+  print CVS_IN "Root $cvsroot\n";
+  print CVS_IN
+    "Valid-responses ok error Valid-requests Checked-in Updated Merged Removed M E\n";
+
+  # Don't worry about sending valid-requests, the server just needs to
+  # support "annotate" and if it doesn't, there isn't anything to be done.
+  print CVS_IN "UseUnchanged\n";
+  print CVS_IN "Argument -r\n";
+  print CVS_IN "Argument $rev\n";
+  print CVS_IN "Argument $where\n";
+
+  # The protocol requires us to fully fake a working directory (at
+  # least to the point of including the directories down to the one
+  # containing the file in question).
+  # So if $where is "dir/sdir/file", then dirs will be ("dir","sdir","file")
+  my $path = '';
+  foreach my $dir (split('/', $where)) {
+
+    if ($path eq "") {
+      # In our example, $dir is "dir".
+      $path = $dir;
+    } else {
+      print CVS_IN "Directory $path\n";
+      print CVS_IN "$cvsroot/$path\n";
+
+      # In our example, $_ is "sdir" and $path becomes "dir/sdir"
+      # And the next time, "file" and "dir/sdir/file" (which then gets
+      # ignored, because we don't need to send Directory for the file).
+      $path .= "/$dir";
+    }
+  }
+  undef $path;
+
+  # And the last "Directory" before "annotate" is the top level.
+  print CVS_IN "Directory .\n";
+  print CVS_IN "$cvsroot\n";
+
+  print CVS_IN "annotate\n";
+
+  # OK, we've sent our command to the server.  Thing to do is to
+  # close the writer side and get all the responses.
+  if (!close(CVS_IN)) {
+    $h->finish();
+    fatal('500 Internal Error',
+          'Annotate failure (exit status %s): <code>%s</code>, output: ' .
+          '<pre>%s</pre>', $? >> 8, $!, $annotate_err);
+  }
+
+  navigateHeader($scriptwhere, $pathname, $filename, $rev, 'annotate');
+
+  print '<h3 style="text-align: center">Annotation of ',
+    htmlquote("$pathname$filename"), ", revision $rev</h3>\n";
+
+  # Ready to get the responses from the server.
+  # For example:
+  #     E Annotations for foo/xx
+  #     E ***************
+  #     M 1.3          (kingdon  06-Sep-97): hello
+  #     ok
+  my ($lineNr) = 0;
+  my ($oldLrev, $oldLusr) = ("", "");
+  my ($revprint, $usrprint);
+
+  if ($annTable) {
+    print <<EOF;
+<table style="border: none" cellspacing="0" cellpadding="0" summary="Annotation">
+EOF
+  } else {
+    print "<pre>";
+  }
+
+  # prefetch several lines
+  my @buf = head(*CVS_OUT);
+
+  my %d = scan_directives(@buf);
+
+  while (@buf || !eof(*CVS_OUT)) {
+
+    $_ = @buf ? shift @buf : <CVS_OUT>;
+    my @words = split;
+
+    # Adding one is for the (single) space which follows $words[0].
+    my $rest = substr($_, length($words[0]) + 1);
+    if ($words[0] eq "E") {
+      next;
+    } elsif ($words[0] eq "M") {
+      $lineNr++;
+      (my $lrev = substr($_, 2,  13)) =~ y/ //d;
+      (my $lusr = substr($_, 16, 9))  =~ y/ //d;
+      my $line = substr($_, 36);
+      my $isCurrentRev = ($rev eq $lrev);
+
+      # we should parse the date here ..
+      if ($lrev eq $oldLrev) {
+        $revprint = sprintf('%-8s', '');
+      } else {
+        $revprint = sprintf('%-8s', $lrev);
+        $revprint =~ s|(\S+)|&link($1, uri_escape($filename)."$query#rev$1")|e;
+        $oldLusr = '';
+      }
+
+      $usrprint = ($lusr eq $oldLusr) ? '' : $lusr;
+      $oldLrev = $lrev;
+      $oldLusr = $lusr;
+
+      print $is_textbased ? '<b>' : '<span class="current-rev">'
+        if $isCurrentRev;
+
+      $usrprint = sprintf('%-8s', $usrprint);
+      printf '%s%s %s %4d:', $revprint, $isCurrentRev ? '!' : ' ',
+        htmlquote($usrprint), $lineNr;
+      print spacedHtmlText($line, $d{tabstop});
+
+      print $is_textbased ? '</b>' : '</span>' if $isCurrentRev;
+
+    } elsif ($words[0] eq "ok") {
+
+      # We could complain about any text received after this, like the
+      # CVS command line client.  But for simplicity, we don't.
+    } elsif ($words[0] eq "error") {
+      fatal("500 Internal Error",
+            'Error occured during annotate: <b>%s</b>', $_);
+    }
+  }
+  $h->finish();
+
+  if ($annTable) {
+    print "</table>";
+  } else {
+    print "</pre>";
+  }
+  html_footer();
+}
+
+###############################
+# make Checkout
+###############################
+sub doCheckout($$)
+{
+  my ($fullname, $rev) = @_;
+  $rev = undef if ($rev && ($rev eq '.'));
+
+  # Start resolving whether we will do a markup view or not.
+  my $do_markup = undef;
+  my $want_type = $input{'content-type'};
+
+  # No markup if markup disallowed.
+  $do_markup = 0 unless $allow_markup;
+
+  # No markup if checkout magic cookie in URL.
+  $do_markup = 0 if (!defined($do_markup) && $doCheckout);
+
+  # Do markup if explicitly asked using cvsweb-markup content type.  If the
+  # asked content type is anything else, no markup.
+  if (!defined($do_markup) && $want_type) {
+    if ($want_type =~ CVSWEBMARKUP) {
+      $want_type = undef;
+      $do_markup = 1;
+    } else {
+      $do_markup = 0;
+    }
+  }
+
+  # Ok, if $do_markup is still undefined, we know that a download has not been
+  # explicitly asked.  For the last check further down below we'll need to
+  # know if the file is binary, and possibly run a log on it.
+  my $needlog = $do_markup || $use_moddate;
+
+  my $moddate = undef;
+  my $revopt;
+  if (defined($rev)) {
+    $revopt = "-r$rev";
+    if ($needlog) {
+      readLog($fullname, $rev);
+      $moddate = $date{$rev};
+    }
+  } else {
+    $revopt = "-rHEAD";
+    if ($needlog) {
+      readLog($fullname);
+      $moddate = $date{$symrev{HEAD}};
+    }
+  }
+
+  my $cr = abs_path($cvsroot) || $cvsroot;
+  # abs_path() taints when run as a CGI...
+  if ($cr =~ VALID_PATH) {
+    $cr = $1;
+  } else {
+    fatal('500 Internal Error', 'Illegal CVS root: <code>%s</code>', $cr);
+  }
+  # Use abs_path() to work around a bug of cvs -p; expand symlinks if we can.
+  my @cmd = ($CMD{cvs}, @cvs_options, '-d', $cr, 'co', '-p', $revopt, $where);
+
+  local (*CVS_OUT, *CVS_ERR);
+  my ($h, $err) =
+    startproc(\@cmd, \"", '>pipe', \*CVS_OUT, '2>pipe', \*CVS_ERR);
+  fatal('500 Internal Error',
+        'Checkout failure (exit status %s), output: <pre>%s</pre>',
+        $? >> 8 || -1, $err)
+    unless $h;
+
+  if (eof(CVS_ERR)) {
+    $h->finish();
+    fatal("404 Not Found", '%s is not (any longer) pertinent', $where);
+  }
+
+  #===================================================================
+  #Checking out squid/src/ftp.c
+  #RCS:  /usr/src/CVS/squid/src/ftp.c,v
+  #VERS: 1.1.1.28.6.2
+  #***************
+
+  # Parse CVS header
+  my ($revision, $filename, $cvsheader);
+  $filename = "";
+  while (<CVS_ERR>) {
+    last if (/^\*\*\*\*/);
+    $revision = $1 if (/^VERS: (.*)$/);
+
+    if (/^Checking out (.*)$/) {
+      ($filename = $1) =~ s|^\./+||;
+    }
+    $cvsheader .= $_;
+  }
+  close(CVS_ERR);
+
+  if ($filename ne $where) {
+    $h->finish();
+    fatal("500 Internal Error",
+          'Unexpected output from cvs co: <pre>%s</pre> ' .
+          '(expected "<code>%s</code>" but got "<code>%s</code>")',
+          $cvsheader, $where, $filename);
+  }
+
+  # Last checks whether we'll do markup or not.
+  my $isbin = $keywordsubstitution && $keywordsubstitution =~ /b/;
+  my $mimetype = getMimeType($fullname, $isbin);
+
+  # If we still are not sure whether to do markup or not:
+  # if the MIME type is "viewable" or this is not a binary file, do.
+  $do_markup = !$isbin || viewable($mimetype) unless defined($do_markup);
+
+  if ($do_markup) {
+
+    # If this is something we'll be linking to in the markup view, we are
+    # done with this particular output from "cvs co" and must discard it.
+    my $linked = $mimetype =~ m{^image/|application/pdf$}i;
+    if ($linked) {
+      close(CVS_OUT);
+      $h->finish();
+    }
+
+    # Here we know the last modified date, but don't know if tags have been
+    # added afterwards (those are shown in the markup view): no last-modified.
+    cvswebMarkup(\*CVS_OUT, $fullname, $revision, $isbin, $mimetype, $needlog);
+
+    $h->finish() unless $linked;
+
+  } else {
+    http_header($want_type || $mimetype, $moddate);
+    local $/ = undef;
+    print <CVS_OUT>;
+    $h->finish();
+  }
+}
+
+
+sub cvswebMarkup($$$$$$;$)
+{
+  my ($filehandle, $fullname, $rev, $isbin, $mimetype, $logged, $mod) = @_;
+
+  (my $pathname = $where) =~ s|((?<=/)Attic/)?[^/]*$||;
+  (my $filename = $where) =~ s|^.*/||;
+
+  navigateHeader($scriptwhere, $pathname, $filename, $rev, 'view', $mod);
+
+  print <<EOF;
+<hr />
+<div class="log-markup">
+File:&nbsp;
+EOF
+  print &clickablePath($where, 1), "<br />\n";
+
+  if ($show_log_in_markup) {
+    readLog($fullname) unless $logged; #,$rev);
+    printLog($rev, $mimetype, $isbin);
+  } else {
+    print "Revision: <b>$rev</b><br />\n";
+    print 'Tag: ', htmlquote($input{only_with_tag}), "<br />\n"
+      if $input{only_with_tag};
+  }
+  print "</div>\n<hr />";
+  my $url = download_url(uri_escape($filename), $rev, $mimetype);
+
+  if ($mimetype =~ m|^image/|i) {
+    printf '<img src="%s" alt="%s" /><br />',
+      $url . $barequery, htmlquote($filename);
+  } elsif (lc($mimetype) eq 'application/pdf') {
+    printf '<embed src="%s" width="100%%" height="100%%" /><br />',
+      $url . $barequery;
+  } else {
+
+    print "<pre>\n";
+    my $linenumbers = $input{ln} || 0;
+
+    if (my $enscript_hl = getEnscriptHL($filename)) {
+      doEnscript($filehandle, $enscript_hl, $linenumbers);
+
+    } else {
+      my $ln  = 0;
+      my @buf = ();
+      my $ts  = undef;
+
+      if ($preformat_in_markup) {
+        # prefetch several lines
+        @buf = head($filehandle);
+        my %d = scan_directives(@buf);
+        $ts = $d{tabstop};
+      }
+
+      while (@buf || !eof($filehandle)) {
+        $_ = @buf ? shift @buf : <$filehandle>;
+        if ($linenumbers) {
+          $ln++;
+          printf '<a id="l%d" class="src">%5d: </a>', ($ln) x 2;
+        }
+        print $preformat_in_markup ? spacedHtmlText($_, $ts) : htmlquote($_);
+      }
+    }
+
+    print "</pre>\n";
+  }
+  html_footer();
+}
+
+
+sub viewable($)
+{
+  return shift =~ m{^((text|image)/|application/pdf)}i;
+}
+
+
+###############################
+# Show Colored Diff
+###############################
+sub doDiff($$$$$$)
+{
+  my ($fullname, $r1, $tr1, $r2, $tr2, $f) = @_;
+
+  if (forbidden($fullname)) {
+    fatal('403 Forbidden', 'Access to %s forbidden.', $where);
+  }
+
+  my ($rev1, $sym1);
+  if ($r1 =~ /([^:]+)(:(.+))?/) {
+    $rev1 = $1;
+    $sym1 = $3;
+  }
+  if ($r1 eq 'text') {
+    $rev1 = $tr1;
+    $sym1 = "";
+  }
+
+  my ($rev2, $sym2);
+  if ($r2 =~ /([^:]+)(:(.+))?/) {
+    $rev2 = $1;
+    $sym2 = $3;
+  }
+  if ($r2 eq 'text') {
+    $rev2 = $tr2;
+    $sym2 = "";
+  }
+
+  #
+  # rev1 and rev2 are now both numeric revisions.
+  # Thus we do a DWIM here and swap them if rev1 is after rev2.
+  # XXX should we warn about the fact that we do this?
+  if (&revcmp($rev1, $rev2) > 0) {
+    my ($tmp1, $tmp2) = ($rev1, $sym1);
+    ($rev1, $sym1) = ($rev2, $sym2);
+    ($rev2, $sym2) = ($tmp1, $tmp2);
+  }
+
+  my $mimetype = getMimeType($fullname);
+
+  #
+  #  Check for per-MIME type diff commands.
+  #
+  my $diffcmd = undef;
+  if (my $diffcmds = $DIFF_COMMANDS{lc($mimetype)}) {
+    if ($f =~ /^ext(\d*)$/) {
+      my $n = $1 || 0;
+      $diffcmd = $diffcmds->[$n];
+    }
+  }
+  if ($diffcmd && $diffcmd->{cmd} && $diffcmd->{name}) {
+
+    if ($diffcmd->{args} && ref($diffcmd->{args}) ne 'ARRAY') {
+      fatal('500 Internal Error',
+            'Configuration error: arguments to external diff tools must ' .
+            'be given as array refs.  See "<code>%s</code>" in ' .
+            '<code>%%DIFF_COMMANDS</code>.',
+            $diffcmd->{name});
+    }
+
+    (my $cvsname = $where) =~ s/\.diff$//;
+
+    # Create two temporary files with the two revisions
+    my $temp_fn1 = checkout_to_temp($cvsroot, $cvsname, $rev1);
+    my $temp_fn2 = checkout_to_temp($cvsroot, $cvsname, $rev2);
+
+    # Execute chosen diff binary.
+    local (*DIFF_OUT);
+    my @cmd = ($diffcmd->{cmd});
+    push(@cmd, @{$diffcmd->{args}}) if $diffcmd->{args};
+    push(@cmd, $temp_fn1, $temp_fn2);
+    my ($h, $err) = startproc(\@cmd, \"", '>pipe', \*DIFF_OUT);
+    if (!$h) {
+      unlink($temp_fn1);
+      unlink($temp_fn2);
+      fatal('500 Internal Error',
+            'Diff failure (exit status %s), output: <pre>%s</pre>',
+            $? >> 8 || -1, $err);
+    }
+
+    http_header($diffcmd->{type} || 'text/plain');
+    local $/ = undef;
+    print <DIFF_OUT>;
+    $h->finish();
+    unlink($temp_fn1);
+    unlink($temp_fn2);
+
+    exit;
+  }
+
+  #
+  # Normal CVS diff.
+  #
+
+  $f = $DEFAULTVALUE{f} || 'u' if ($f =~ /^ext\d*$/);
+  my $difftype = $DIFFTYPES{$f};
+  if (!$difftype) {
+    fatal("400 Bad arguments", 'Diff format %s not understood', $f);
+  }
+
+  my @difftype       = @{$difftype->{opts}};
+  my $human_readable = $difftype->{colored};
+
+  # Apply special diff options.  -p and -F are not available with side by side
+  # diffs and may cause problems with older (< 2.8) versions of diffutils if
+  # used with --side-by-side.
+  if ($showfunc && $f !~ /^s/) {
+    push(@difftype, '-p');
+    while (my ($re1, $re2) = each %funcline_regexp) {
+      if ($fullname =~ $re1) {
+        push(@difftype, '-F', $re2);
+        last;
+      }
+    }
+  }
+
+  if ($human_readable) {
+    push(@difftype, '-w')  if $hr_ignwhite;
+    push(@difftype, '-kk') if $hr_ignkeysubst;
+  }
+
+  my $fh = do { local (*FH); };
+  if (!open($fh, "-|")) {    # child
+    open(STDERR, ">&STDOUT");    # Redirect stderr to stdout
+    openOutputFilter();
+    exec($CMD{rcsdiff}, @rcsdiff_options, @difftype, "-r$rev1", "-r$rev2",
+         $fullname) or exit -1;
+  }
+
+  if ($human_readable) {
+    #
+    # Human readable diff.
+    #
+    human_readable_diff($fh, $rev2);
+    html_footer();
+    gzipclose();
+    exit;
+
+  } elsif ($f =~ /^([ucs])c$/) {
+    #
+    # Enscript colored diff.
+    #
+    my $hl = 'diff';
+    $hl .= $1 if ($1 eq 'u' || $1 eq 's');
+    (my $where_nd = $where)       =~ s/\.diff$//;
+    (my $pathname = $where_nd)    =~ s|((?<=/)Attic/)?[^/]*$||;
+    (my $filename = $where_nd)    =~ s|^.*/||;
+    (my $swhere   = $scriptwhere) =~ s|\.diff$||;
+    navigateHeader($swhere, $pathname, $filename, $rev2, 'diff');
+    printf(<<EOF, $where_nd, $rev1, $rev2);
+<h3 style="text-align: center">Diff for /%s between versions %s and %s</h3>
+<pre>
+EOF
+    doEnscript(\$fh, $hl, 0, 'cvsweb_diff');
+    print <<EOF;
+</pre>
+<hr style="width: 100%" />
+<form method="get" action="$scriptwhere">
+EOF
+    printDiffSelectStickyVars();
+    print 'Diff format: ';
+    printDiffSelect($use_java_script);
+    print "<input type=\"submit\" value=\"Show\" />\n</form>\n";
+    html_footer();
+    gzipclose();
+    exit;
+
+  } else {
+    #
+    # Plain diff.
+    #
+    http_header("text/plain");
+  }
+
+  #
+  #===================================================================
+  #RCS file: /home/ncvs/src/sys/netinet/tcp_output.c,v
+  #retrieving revision 1.16
+  #retrieving revision 1.17
+  #diff -c -r1.16 -r1.17
+  #*** /home/ncvs/src/sys/netinet/tcp_output.c     1995/11/03 22:08:08     1.16
+  #--- /home/ncvs/src/sys/netinet/tcp_output.c     1995/12/05 17:46:35     1.17
+  #
+  # Ideas:
+  # - nuke the stderr output if it's what we expect it to be
+  # - Add "no differences found" if the diff command supplied no output.
+  #
+  #*** src/sys/netinet/tcp_output.c     1995/11/03 22:08:08     1.16
+  #--- src/sys/netinet/tcp_output.c     1995/12/05 17:46:35     1.17 RELENG_2_1_0
+  # (bogus example, but...)
+  #
+  my ($f1, $f2);
+  if (grep { $_ eq '-u' } @difftype) {
+    $f1 = '---';
+    $f2 = '\+\+\+';
+  } else {
+    $f1 = '\*\*\*';
+    $f2 = '---';
+  }
+
+  while (<$fh>) {
+    if (m|^$f1 $cvsroot|o) {
+      s|$cvsroot/||o;
+      if ($sym1) {
+        chop;
+        $_ .= " $sym1\n";
+      }
+    } elsif (m|^$f2 $cvsroot|o) {
+      s|$cvsroot/||o;
+
+      if ($sym2) {
+        chop;
+        $_ .= " $sym2\n";
+      }
+    }
+    print $_;
+  }
+  close($fh);
+}
+
+
+###############################
+# Show Logs ..
+###############################
+sub getDirLogs($$@)
+{
+  my ($cvsroot, $dirname, @otherFiles) = @_;
+  my $tag = $input{only_with_tag};
+  my $DirName = catdir($cvsroot, $where);
+
+  my @files = &safeglob("$DirName/*,v");
+  push (@files, &safeglob("$DirName/Attic/*,v")) unless $input{hideattic};
+  foreach my $file (@otherFiles) {
+    push(@files, catfile($DirName, $file));
+  }
+
+  # Weed out unreadable files.
+  my $i = 0;
+  my @unreadable = ();
+  while ($i < scalar(@files)) {
+    # Note: last modified files from subdirs returned by
+    # findLastModifiedSubdirs() come without the ,v suffix so they're not
+    # found here, but have already been checked for readability.  *cough*
+    if (-r $files[$i] || !-e _) {
+      $i++;
+    } else {
+      push(@unreadable, splice(@files, $i, 1));
+    }
+  }
+
+  # If there are no files, we're done.
+  return @unreadable unless @files;
+
+  my @cmd = ($CMD{rlog});
+  # Can't use -r<tag> as '-' is allowed in tagnames,
+  # but misinterpreted by rlog.
+  push(@cmd, '-r') unless defined($tag);
+
+  my $fh = do { local (*FH); };
+  if (!open($fh, '-|')) {            # Child
+    open(STDERR, '>', devnull());    # Ignore rlog's complaints.
+    openOutputFilter();
+    if ($file_list_len && $file_list_len > 1) {
+      while (scalar(@files) > $file_list_len) {  # Process files in chunks.
+        system(@cmd, splice(@files, 0, $file_list_len)) == 0 or exit -1;
+      }
+    }
+    exec(@cmd, @files) or exit -1;
+  }
+  undef @cmd;
+
+  my $state = 'start';
+  my ($date, $branchpoint, $branch, $log, @filetags);
+  my ($rev, $revision, $revwanted, $filename, $head, $author, $keywordsubst);
+
+  while (<$fh>) {
+    if ($state eq "start") {
+
+      #Next file. Initialize file variables
+      $rev         = '';
+      $revwanted   = '';
+      $branch      = '';
+      $branchpoint = '';
+      $filename    = '';
+      $log         = '';
+      $revision    = '';
+      %symrev      = ();
+      @filetags    = ();
+      $keywordsubst= '';
+
+      #jump to head state
+      $state = "head";
+    }
+
+    again:
+
+    if ($state eq "head") {
+
+      #$rcsfile = $1 if (/^RCS file: (.+)$/); #not used (yet)
+
+      if (/^Working file: (.+)$/) {
+        $filename = $1;
+      } elsif (/^head: (.+)$/) {
+        $head = $1;
+      } elsif (/^branch: (.+)$/) {
+        $branch = $1;
+      } elsif (/^keyword substitution: (.+)$/) {
+        $keywordsubst = $1;
+      } elsif (/^symbolic names:/) {
+        $state = "tags";
+        ($branch = $head) =~ s/\.\d+$//
+          if $branch eq '';
+        $branch =~ s/(\d+)$/0.$1/;
+        $symrev{MAIN}  = $branch;
+        $symrev{HEAD}  = $branch;
+        $alltags{MAIN} = 1;
+        $alltags{HEAD} = 1;
+        push (@filetags, "MAIN", "HEAD");
+      } elsif ($_ =~ LOG_REVSEPR) {
+        $state = "log";
+        $rev   = '';
+        $date  = '';
+        $log   = '';
+
+        # Try to reconstruct the relative filename if RCS spits out a full path
+        $filename =~ s%^\Q$DirName\E/%%;
+      }
+      next;
+    }
+
+    if ($state eq "tags") {
+      if (/^\s+([^:]+):\s+([\d\.]+)\s*$/) {
+        push (@filetags, $1);
+        $symrev{$1}  = $2;
+        $alltags{$1} = 1;
+        next;
+      } elsif (/^\S/) {
+
+        if (defined($tag)) {
+          if (defined($symrev{$tag}) || $tag eq "HEAD") {
+            $revwanted    = $symrev{$tag eq "HEAD" ? "MAIN" : $tag};
+            ($branch      = $revwanted) =~ s/\b0\.//;
+            ($branchpoint = $branch)    =~ s/\.?\d+$//;
+            $revwanted    = '' if ($revwanted ne $branch);
+          } elsif ($tag ne "HEAD") {
+            $state = "skip";
+            next;
+          }
+        }
+
+        foreach my $tagfound (@filetags) {
+          $tags{$tagfound} = 1;
+        }
+        $state = "head";
+        goto again;
+      }
+    }
+
+    if ($state eq "log") {
+      if ($_ =~ LOG_REVSEPR || $_ =~ LOG_FILESEPR) {
+
+        # End of a log entry.
+        my $revbranch = $rev;
+        $revbranch =~ s/\.\d+$//;
+
+        if ($revwanted eq '' && $branch ne '' && $branch eq $revbranch
+            || !defined($tag))
+        {
+          $revwanted = $rev;
+        }
+
+        if ($revwanted ne ''
+            ? $rev eq $revwanted
+            : $branchpoint ne ''
+              ? $rev eq $branchpoint
+              : 0
+            && ($rev eq $head))
+        {    # Don't think head is needed here..
+          my @finfo = ($rev, $date, $log, $author, $filename, $keywordsubst);
+          (my $name = $filename) =~ s%/.*%%;
+          $fileinfo{$name} = [@finfo];
+          $state = "done" if ($rev eq $revwanted);
+        }
+        $rev  = '';
+        $date = '';
+        $log  = '';
+      } elsif ($date eq ''
+               && m|^date:\s+(\d+)/(\d+)/(\d+)\s+(\d+):(\d+):(\d+);|)
+      {
+        my $yr    = $1;
+        $yr      -= 1900 if ($yr > 100); # Damn 2-digit year routines :-)
+        $date     = timegm($6, $5, $4, $3, $2 - 1, $yr);
+        ($author) = /author: ([^;]+)/;
+        $state    = 'log';
+        $log      = '';
+        next;
+      } elsif ($rev eq '' && /^revision (\d+(?:\.\d+)+).*$/) {
+        $rev = $1;    # .*$ eats up the locker(lockers?) info, if any
+        next;
+      } else {
+        $log .= $_;
+      }
+    }
+
+    if ($_ =~ LOG_FILESEPR) {
+      $state = "start";
+      next;
+    }
+  }
+
+  my $linesread = $. || 0;
+  close($fh);
+
+  if ($linesread == 0) {
+    fatal('500 Internal Error',
+          'Failed to spawn GNU rlog on <em>"%s"</em>.<br /><br />Did you set the <b><code>@command_path</code></b> in your configuration file correctly? (Currently: "<code>%s</code>")',
+          htmlquote(join(', ', @files)), join(':', @command_path));
+  }
+
+  return @unreadable;
+}
+
+
+sub readLog($;$)
+{
+  my ($fullname, $revision) = @_;
+  my ($symnames, $head, $rev, $br, $brp, $branch, $branchrev);
+
+  $revision = defined($revision) ? "-r$revision" : '';
+
+  undef %symrev;
+  undef %revsym;
+  undef @allrevisions;
+  undef %date;
+  undef %author;
+  undef %state;
+  undef %difflines;
+  undef %log;
+  $keywordsubstitution = '';
+
+  my $fh = do { local (*FH); };
+  if (!open($fh, "-|")) {    # child
+    if ($revision ne '') {
+      openOutputFilter();
+      exec($CMD{rlog}, $revision, $fullname) or exit -1;
+    } else {
+      openOutputFilter();
+      exec($CMD{rlog}, $fullname) or exit -1;
+    }
+  }
+
+  my $curbranch = undef;
+  while (<$fh>) {
+    if ($symnames) {
+      if (/^\s+([^:]+):\s+([\d\.]+)/) {
+        $symrev{$1} = $2;
+        next;
+      } else {
+        $symnames = 0;
+      }
+    }
+    if (/^head:\s+([\d\.]+)/) {
+      $head = $1;
+    } elsif (/^branch:\s+([\d\.]+)/) {
+      $curbranch = $1;
+    } elsif (/^symbolic names/) {
+      $symnames = 1;
+    } elsif (/^keyword substitution: (.+)$/) {
+      $keywordsubstitution = $1;
+    } elsif (/^-----/) {
+      last;
+    }
+  }
+  ($curbranch = $head) =~ s/\.\d+$// if (!defined($curbranch));
+
+  # each log entry is of the form:
+  # ----------------------------
+  # revision 3.7.1.1
+  # date: 1995/11/29 22:15:52;  author: fenner;  state: Exp;  lines: +5 -3
+  # log info
+  # ----------------------------
+
+  # For a locked revision, the first line after the separator 
+  # becomes smth like
+  # revision 9.19       locked by: vassilii;
+
+  logentry:
+
+  while ($_ !~ LOG_FILESEPR) {
+    $_ = <$fh>;
+    last logentry if (!defined($_));    # EOF
+    if (/^revision (\d+(?:\.\d+)+)/) {
+      $rev = $1;
+      unshift(@allrevisions, $rev);
+    } elsif ($_ =~ LOG_FILESEPR || $_ =~ LOG_REVSEPR) {
+      next logentry;
+    } else {
+
+      # The rlog output is syntactically ambiguous.  We must
+      # have guessed wrong about where the end of the last log
+      # message was.
+      # Since this is likely to happen when people put rlog output
+      # in their commit messages, don't even bother keeping
+      # these lines since we don't know what revision they go with
+      # any more.
+      next logentry;
+    }
+    $_ = <$fh>;
+    if (
+      m|^date:\s+(\d+)/(\d+)/(\d+)\s+(\d+):(\d+):(\d+);\s+author:\s+(\S+);\s+state:\s+(\S+);\s+(lines:\s+([0-9\s+-]+))?|
+      )
+    {
+      my $yr           = $1;
+      $yr             -= 1900 if ($yr > 100); # Damn 2-digit year routines :-)
+      $date{$rev}      = timegm($6, $5, $4, $3, $2 - 1, $yr);
+      $author{$rev}    = $7;
+      $state{$rev}     = $8;
+      $difflines{$rev} = $10;
+    } else {
+      fatal("500 Internal Error", 'Error parsing RCS output: %s', $_);
+    }
+
+  line:
+    while (<$fh>) {
+      next line if (/^branches:\s/);
+      last line if ($_ =~ LOG_FILESEPR || $_ =~ LOG_REVSEPR);
+      $log{$rev} .= $_;
+    }
+  }
+  close($fh);
+
+  @revorder = reverse sort { revcmp($a, $b) } @allrevisions;
+
+  #
+  # HEAD is an artificial tag which is simply the highest tag number on the main
+  # branch, unless there is a branch tag in the RCS file in which case it's the
+  # highest revision on that branch.  Find it by looking through @revorder; it
+  # is the first commit listed on the appropriate branch.
+  # This is not neccesary the same revision as marked as head in the RCS file.
+  my $headrev = $curbranch || "1";
+  ($symrev{MAIN} = $headrev) =~ s/(\d+)$/0.$1/;
+
+  foreach $rev (@revorder) {
+    if ($rev =~ /^(\S*)\.\d+$/ && $headrev eq $1) {
+      $symrev{HEAD} = $rev;
+      last;
+    }
+  }
+  ($symrev{HEAD} = $headrev) =~ s/\.\d+$// unless defined($symrev{HEAD});
+
+  #
+  # Now that we know all of the revision numbers, we can associate
+  # absolute revision numbers with all of the symbolic names, and
+  # pass them to the form so that the same association doesn't have
+  # to be built then.
+  #
+  undef @branchnames;
+  undef %branchpoint;
+  undef $sel;
+
+  foreach (reverse sort keys %symrev) {
+    $rev = $symrev{$_};
+    if ($rev =~ /^((.*)\.)?\b0\.(\d+)$/) {
+      push (@branchnames, $_);
+
+      #
+      # A revision number of A.B.0.D really translates into
+      # "the highest current revision on branch A.B.D".
+      #
+      # If there is no branch A.B.D, then it translates into
+      # the head A.B .
+      #
+      # This reasoning also applies to the main branch A.B,
+      # with the branch number 0.A, with the exception that
+      # it has no head to translate to if there is nothing on
+      # the branch, but I guess this can never happen?
+      #
+      # (the code below gracefully forgets about the branch
+      # if it should happen)
+      #
+      $head = defined($2) ? $2 : "";
+      $branch = $3;
+      $branchrev = $head . ($head ne "" ? "." : "") . $branch;
+      $rev = $head;
+
+      my $regex = '^' . quotemeta($branchrev) . '\b';
+      $regex = qr/$regex/;
+
+      foreach my $r (@revorder) {
+        if ($r =~ $regex) {
+          $rev = $branchrev;
+          last;
+        }
+      }
+      next if ($rev eq "");
+
+      if ($rev ne $head && $head ne "") {
+        $branchpoint{$head} .= ', ' if ($branchpoint{$head});
+        $branchpoint{$head} .= $_;
+      }
+    }
+    $revsym{$rev} .= ", " if ($revsym{$rev});
+    $revsym{$rev} .= $_;
+    $sel .= sprintf("<option value=\"%s:%s\">%s</option>\n",
+                    htmlquote($rev), (htmlquote($_)) x 2);
+  }
+
+  my ($onlyonbranch, $onlybranchpoint);
+  if ($onlyonbranch = $input{only_with_tag}) {
+    $onlyonbranch = $symrev{$onlyonbranch};
+    if ($onlyonbranch =~ s/\b0\.//) {
+      ($onlybranchpoint = $onlyonbranch) =~ s/\.\d+$//;
+    } else {
+      $onlybranchpoint = $onlyonbranch;
+    }
+
+    if (!defined($onlyonbranch) || $onlybranchpoint eq "") {
+      fatal("404 Tag not found", 'Tag %s not defined',
+            $input{only_with_tag});
+    }
+  }
+
+  undef @revisions;
+
+  foreach (@allrevisions) {
+    ($br  = $_)  =~ s/\.\d+$//;
+    ($brp = $br) =~ s/\.\d+$//;
+    next if ($onlyonbranch
+             && $br ne $onlyonbranch
+             && $_  ne $onlybranchpoint);
+    unshift(@revisions, $_);
+  }
+
+  if ($logsort eq "date") {
+
+    # Sort the revisions in commit order an secondary sort on revision
+    # (secondary sort needed for imported sources, or the first main
+    # revision gets before the same revision on the 1.1.1 branch)
+    @revdisplayorder =
+      sort { $date{$b} <=> $date{$a} || -revcmp($a, $b) } @revisions;
+  } elsif ($logsort eq "rev") {
+
+    # Sort the revisions in revision order, highest first
+    @revdisplayorder = reverse sort { revcmp($a, $b) } @revisions;
+  } else {
+
+    # No sorting. Present in the same order as rlog / cvs log
+    @revdisplayorder = @revisions;
+  }
+
+  return $curbranch;
+}
+
+
+sub getDiffLinks($$$)
+{
+  my ($url, $mimetype, $isbin) = @_;
+
+  my @links = ();
+  if (!$isbin) { # Offer ordinary diff only for non-binary files.
+    push(@links, &link('preferred', $url));
+    for my $difftype ($DIFFTYPES{$defaultDiffType}{colored} ? qw(u) : qw(h)) {
+      my $f = $difftype eq $defaultDiffType ? '' : $difftype;
+      push(@links,
+           &link(htmlquote(lc($DIFFTYPES{$difftype}{descr})), "$url;f=$f"));
+    }
+  }
+  if (my $extdiffs = $DIFF_COMMANDS{lc($mimetype)}) {
+    for my $i (0 .. scalar(@$extdiffs)-1) {
+      my $extdiff = $extdiffs->[$i];
+      push(@links, &link(htmlquote($extdiff->{name}), "$url;f=ext$i"))
+        if ($extdiff->{cmd} && $extdiff->{name});
+    }
+  }
+  return @links;
+}
+
+
+sub printLog($$$;$$)
+{
+  # inlogview: 1 if in log view, otherwise in markup view.
+  ($_, my $mimetype, my $isbin, my $inlogview, my $isSelected) = @_;
+  (my $br  = $_)  =~ s/\.\d+$//;
+  (my $brp = $br) =~ s/\.?\d+$//;
+
+  print "<a name=\"rev$_\"></a>";
+  if (defined($revsym{$_})) {
+    foreach my $sym (split(", ", $revsym{$_})) {
+      print '<a name="', htmlquote($sym), '"></a>';
+    }
+  }
+  if ($revsym{$br} && !defined($nameprinted{$br})) {
+    foreach my $sym (split(", ", $revsym{$br})) {
+      print '<a name="', htmlquote($sym), '"></a>';
+    }
+    $nameprinted{$br} = 1;
+  }
+
+  print "\n Revision <b>$_</b>";
+  if (/^1\.1\.1\.\d+$/) {
+    print " <i>(vendor branch)</i>";
+  }
+
+  (my $filename = $where) =~ s|^.*/||;
+  my $fileurl   = uri_escape($filename);
+  undef $filename;
+
+  my $isDead = ($state{$_} eq 'dead');
+  if (!$isDead) {
+
+    print ': ', download_link($fileurl, $_, 'download', $mimetype);
+
+    my @vlinks = ();
+    push(@vlinks, display_link($fileurl, $_, 'text', 'text/plain'))
+      unless $isbin;
+    push(@vlinks, display_link($fileurl, $_, 'markup', 'text/x-cvsweb-markup'))
+      if ($allow_markup && $inlogview && (!$isbin || viewable($mimetype)));
+    if (!$isbin && $allow_annotate) {
+      push(@vlinks,
+           &link('annotated',
+                 sprintf('%s?annotate=%s%s', $fileurl, $_, $barequery)));
+    }
+    print ' - view: ', join(', ', @vlinks) if @vlinks;
+    undef @vlinks;
+
+    if (!$isbin && $allow_version_select) {
+      print ' - ';
+      if ($isSelected) {
+        print '<b>[selected&nbsp;for&nbsp;diffs]</b>';
+      } else {
+        print &link('select&nbsp;for&nbsp;diffs',
+                    sprintf('%s?r1=%s%s#rev%s',
+                            $fileurl, $_, $barequery, $_));
+      }
+    }
+    print ' - ', graph_link('', 'revision graph')
+      if (!$inlogview && $allow_cvsgraph);
+  }
+  print "<br />\n";
+
+  print '<i>';
+  if (defined @mytz) {
+    my ($est) = $mytz[(localtime($date{$_}))[8]];
+    print scalar localtime($date{$_}), " $est</i> (";
+  } else {
+    print scalar gmtime($date{$_}), " UTC</i> (";
+  }
+  print readableTime(time() - $date{$_}, 1), ' ago)';
+  print ' by <i>', htmlquote($author{$_}), "</i><br />\n";
+
+  printf("Branches: %s<br />\n", link_tags($revsym{$br})) if $revsym{$br};
+  printf("CVS tags: %s<br />\n", link_tags($revsym{$_}))  if $revsym{$_};
+  printf("Branch point for: %s<br />\n", link_tags($branchpoint{$_}))
+    if $branchpoint{$_};
+
+  # Find the previous revision
+  my $prev;
+  my @prevrev = split(/\./, $_);
+  do {
+    if (--$prevrev[$#prevrev] <= 0) {
+
+      # If it was X.Y.Z.1, just make it X.Y
+      pop (@prevrev);
+      pop (@prevrev);
+    }
+    $prev = join (".", @prevrev);
+  } until (defined($date{$prev}) || $prev eq "");
+
+  if ($isDead) {
+    print "<b><i>FILE REMOVED</i></b><br />\n";
+  } else {
+    my %diffrev = ();
+    $diffrev{$_} = 1;
+    $diffrev{""} = 1;
+    my $diff = 'Diff';
+    my $printed = 0;
+
+    #
+    # Offer diff to previous revision
+    if ($prev) {
+      $diffrev{$prev} = 1;
+      my $url =
+        sprintf('%s.diff?r1=%s;r2=%s%s', $fileurl, $prev, $_, $barequery);
+      if (my @dlinks = getDiffLinks($url, $mimetype, $isbin)) {
+        print $diff, ' to previous ', $prev, ': ', join(', ', @dlinks);
+        $diff = ''; $printed = 1;
+      }
+    }
+
+    #
+    # Plus, if it's on a branch, and it's not a vendor branch,
+    # offer a diff with the branch point.
+    if ($revsym{$brp}
+      && !/^1\.1\.1\.\d+$/
+      && !defined($diffrev{$brp}))
+    {
+      my $url =
+        sprintf('%s.diff?r1=%s;r2=%s%s', $fileurl, $brp, $_, $barequery);
+      if (my @dlinks = getDiffLinks($url, $mimetype, $isbin)) {
+        print $diff, ' to branchpoint ', $brp, ': ', join(', ', @dlinks);
+        $diff = ''; $printed = 1;
+      }
+    }
+
+    #
+    # Plus, if it's on a branch, and it's not a vendor branch,
+    # offer to diff with the next revision of the higher branch.
+    # (e.g. change gets committed and then brought
+    # over to -stable)
+    if (/^\d+\.\d+\.\d+/ && !/^1\.1\.1\.\d+$/) {
+      my ($i, $nextmain);
+
+      for ($i = 0; $i < $#revorder && $revorder[$i] ne $_; $i++) {
+      }
+      my @tmp2 = split(/\./, $_);
+      for ($nextmain = ""; $i > 0; $i--) {
+        my $next = $revorder[$i - 1];
+        my @tmp1 = split(/\./, $next);
+
+        if (@tmp1 < @tmp2) {
+          $nextmain = $next;
+          last;
+        }
+
+        # Only the highest version on a branch should have
+        # a diff for the "next main".
+        last
+          if (@tmp1 - 1 <= @tmp2
+          && join (".", @tmp1[0 .. $#tmp1 - 1]) eq
+          join (".", @tmp2[0 .. $#tmp1 - 1]));
+      }
+
+      if (!defined($diffrev{$nextmain})) {
+        $diffrev{$nextmain} = 1;
+        my $url = sprintf('%s.diff?r1=%s;r2=%s%s',
+          $fileurl, $nextmain, $_, $barequery);
+        if (my @dlinks = getDiffLinks($url, $mimetype, $isbin)) {
+          print $diff, ' next main ', $nextmain, ': ', join(', ', @dlinks);
+          $diff = ''; $printed = 1;
+        }
+      }
+    }
+
+    # Plus if user has selected only r1, then present a link
+    # to make a diff to that revision
+    if (defined($input{r1}) && !defined($diffrev{$input{r1}})) {
+      $diffrev{$input{r1}} = 1;
+      my $url = sprintf('%s.diff?r1=%s;r2=%s%s',
+        $fileurl, $input{r1}, $_, $barequery);
+      if (my @dlinks = getDiffLinks($url, $mimetype, $isbin)) {
+        print $diff, ' to selected ', $input{r1}, ': ', join(', ', @dlinks);
+        $diff = ''; $printed = 1;
+      }
+    }
+
+    print "<br />\n" if $printed;
+  }
+
+  if ($prev ne "" && $difflines{$_}) {
+    printf "Changes since revision %s: %s lines<br />\n",
+      htmlquote($prev), htmlquote($difflines{$_});
+  }
+
+  print "<pre class=\"log\">\n";
+  print &htmlify($log{$_}, $allow_log_extra);
+  print "</pre>\n";
+}
+
+
+#
+# Generates the HTML view for CvsGraph.
+#
+sub doGraphView()
+{
+  (my $pathname = $where) =~ s|[^/]*$||;
+  (my $filename = $where) =~ s|^.*/||;
+
+  navigateHeader($scriptwhere, $pathname, $filename, undef, 'graph');
+
+  my $title = 'Revision graph of ' . htmlquote($pathname . $filename);
+  my $mapname = 'CvsGraphMap';
+
+  printf(<<EOF, $title, $mapname, $cvstree, $title);
+<h3 style="text-align: center">%s</h3>
+<div style="text-align: center"><img border="0" usemap="#%s" src="?cvsroot=%s;graph=1;makeimage=1" alt="%s" />
+EOF
+
+  # Remove any pre-existing tag/branch names from branch links.
+  (my $notag_query = $barequery) =~ s/;+only_with_tag=.*?(?=;|$)//g;
+
+  my @graph_cmd =
+    ($CMD{cvsgraph},
+     '-r', $cvsroot,
+     '-m', $pathname,
+     '-i',
+     '-M', $mapname,
+     '-x', 'x',
+     "-Omap_branch_href=\"href=\\\"./?only_with_tag=%(%t%)$notag_query\\\"\"",
+     "-Omap_rev_href=\"href=\\\"?rev=%(%R%)$barequery\\\"\"",
+     "-Omap_diff_href=\"href=\\\"%(%F%).diff" .
+     "?r1=%(%P%);r2=%(%R%)$barequery\\\"\"",
+     );
+  push(@graph_cmd, '-c', $cvsgraph_config) if $cvsgraph_config;
+  push(@graph_cmd, $filename . ',v');
+
+  local *CVSGRAPH_OUT;
+  my ($h, $err) =
+    startproc(\@graph_cmd, \"", '>pipe', \*CVSGRAPH_OUT);
+  fatal('500 Internal Error', $err) unless $h;
+
+  # Browser compatibility kludge: many browsers do not support client side
+  # image maps where the <map> element contains only the id attribute.  Let's
+  # add the corresponding name attribute to it on the fly.
+  while (<CVSGRAPH_OUT>) {
+    s/(<map\s+id="([^"]+)")\s*>/$1 name="$2">/;
+    print;
+  }
+
+  $h->finish();
+  print "</div>\n";
+
+  html_footer();
+}
+
+
+#
+# Generates a graph using CvsGraph.
+#
+sub doGraph()
+{
+  (my $pathname = $where) =~ s|[^/]*$||;
+  (my $filename = $where) =~ s|^.*/||;
+
+  http_header('image/png');
+
+  my @graph_cmd = ($CMD{cvsgraph}, '-r', $cvsroot, '-m', $pathname);
+  push(@graph_cmd, '-c', $cvsgraph_config) if $cvsgraph_config;
+  push(@graph_cmd, $filename . ',v');
+
+  local *CVSGRAPH_OUT;
+  my ($h, $err) =
+    startproc(\@graph_cmd, \"", '>pipe', \*CVSGRAPH_OUT);
+  fatal('500 Internal Error', $err) unless $h;
+  {
+    local $/ = undef;
+    binmode(\*STDOUT);
+    print <CVSGRAPH_OUT>;
+  }
+  $h->finish();
+}
+
+
+sub doLog($)
+{
+  my ($fullname) = @_;
+
+  my $curbranch = readLog($fullname);
+
+  html_header("CVS log for $where");
+
+  my $upwhere = $where;
+  (my $filename = $where) =~ s|^.*/||;
+  my $backurl = "./$query#" . uri_escape($filename);
+  if ($where =~ m|^(.*?)((?<=/)Attic/)?[^/]+$|) {
+    $upwhere = $1;
+    $backurl = ".$backurl" if $2; # skip over Attic
+  }
+
+  my $isbin = $keywordsubstitution =~ /b/;
+  my $mimetype = getMimeType($filename, $isbin);
+
+  print "<p>\n ";
+  print &link($backicon, $backurl), " <b>Up to ",
+    &clickablePath($upwhere, 1), "</b>\n</p>\n";
+  print "<p>\n ";
+  print &link('Request diff between arbitrary revisions', '#diff');
+  print ' - ', &graph_link('', 'Display revisions graphically')
+    if $allow_cvsgraph;
+  if ($cvshistory_url) {
+    (my $d = $upwhere) =~ s|/+$||;
+    print ' - ', history_link($d, $filename);
+  }
+  print "\n</p>\n<hr />\n";
+
+  print "<p>\n";
+
+  my $explain = $isbin ? ' (i.e.: CVS considers this a binary file)' : '';
+  print "Keyword substitution: $keywordsubstitution$explain<br />\n";
+  if ($curbranch) {
+    print "Default branch: ", ($revsym{$curbranch} || $curbranch);
+  } else {
+    print "No default branch";
+  }
+  print "<br />\n";
+
+  print 'Current tag: ', htmlquote($input{only_with_tag}), "<br />\n"
+    if $input{only_with_tag};
+  print "</p>\n";
+
+  undef %nameprinted;
+
+  for my $r (@revdisplayorder) {
+    print "<hr />\n";
+    my $sel = (defined($input{r1}) && $input{r1} eq $r);
+    print "<div class=\"diff-selected\">\n" if $sel;
+    printLog($r, $mimetype, $isbin, 1, $sel);
+    print "</div>\n" if $sel;
+  }
+
+  printf(<<EOF, $scriptwhere);
+<hr />
+<form method="get" action="%s.diff" id="diff_select">
+<fieldset>
+<legend>Diff request</legend>
+<p>
+ <a name="diff">
+  This form allows you to request diffs between any two revisions of a file.
+  You may select a symbolic revision name using the selection box or you may
+  type in a numeric name using the type-in text box.
+ </a>
+</p>
+EOF
+
+  foreach (@stickyvars) {
+    printf("<input type=\"hidden\" name=\"%s\" value=\"%s\" />\n",
+           $_, htmlquote($input{$_}))
+      if (defined($input{$_}) &&
+          (!defined($DEFAULTVALUE{$_}) || $input{$_} ne $DEFAULTVALUE{$_}));
+  }
+
+  print <<EOF;
+<table summary="Diff between arbitrary revisions">
+<tr>
+<td class="opt-label">
+<label for="r1" accesskey="1">Diffs between</label>
+</td>
+<td class="opt-value">
+<select id="r1" name="r1">
+<option value="text" selected="selected">Use Text Field</option>
+EOF
+  print $sel, "</select>\n";
+
+  my $diffrev = defined($input{r1}) ?
+    $input{r1} : $revdisplayorder[$#revdisplayorder];
+
+  printf(<<EOF, $inputTextSize, $diffrev);
+<input type="text" size="%s" name="tr1" value="%s" onchange="this.form.r1.selectedIndex=0" />
+</td>
+<td></td>
+</tr>
+<tr>
+<td class="opt-label">
+<label for="r2" accesskey="2">and</label>
+</td>
+<td class="opt-value">
+<select id="r2" name="r2">
+<option value="text" selected="selected">Use Text Field</option>
+EOF
+  print $sel, "</select>\n";
+
+  $diffrev = defined($input{r2}) ? $input{r2} : $revdisplayorder[0];
+
+  printf(<<EOF, $inputTextSize, $diffrev, $scriptwhere);
+<input type="text" size="%s" name="tr2" value="%s" onchange="this.form.r2.selectedIndex=0" />
+</td>
+<td><input type="submit" value="Get Diffs" accesskey="G" /></td>
+</tr>
+</table>
+</fieldset>
+</form>
+<form method="get" action="%s">
+<fieldset>
+<legend>Log view options</legend>
+<table summary="Log view options">
+<tr>
+<td class="opt-label">
+<label for="f" accesskey="D">Preferred diff type:</label>
+</td>
+<td class="opt-value">
+EOF
+  printDiffSelect($use_java_script);
+  print <<EOF;
+</td>
+<td></td>
+</tr>
+EOF
+
+  if (@branchnames) {
+
+    printf(<<EOF, $use_java_script ? ' onchange="this.form.submit()"' : '');
+<tr>
+<td class="opt-label">
+<label for="only_with_tag" accesskey="B">View only branch:</label>
+</td>
+<td class="opt-value">
+<a name="branch">
+<select id="only_with_tag" name="only_with_tag"%s>
+EOF
+
+    my @tmp = ();
+    my $selfound = 0;
+    foreach (reverse sort @branchnames) {
+      my $selected =
+        (defined($input{only_with_tag}) && $input{only_with_tag} eq $_);
+      $selfound ||= $selected;
+      push(@tmp, sprintf('<option%s>%s</option>',
+                         $selected ? ' selected="selected"' : '',
+                         htmlquote($_)));
+    }
+    printf("<option value=\"\"%s>Show all branches</option>\n",
+           $selfound ? '' : ' selected="selected"');
+    print join("\n", @tmp);
+
+    print <<EOF
+</select>
+</a>
+</td>
+<td></td>
+</tr>
+EOF
+  }
+
+  print <<EOF;
+<tr>
+<td class="opt-label">
+<label for="logsort" accesskey="L">Sort log by:</label>
+</td>
+<td>
+EOF
+  printLogSortSelect($use_java_script);
+  print <<EOF;
+</td>
+<td><input type="submit" value="Set" accesskey="S" /></td>
+</tr>
+</table>
+EOF
+  foreach (@stickyvars) {
+    next if ($_ eq "f");
+    next if ($_ eq "only_with_tag");
+    next if ($_ eq "logsort");
+    printf("<input type=\"hidden\" name=\"$_\" value=\"%s\" />\n",
+           htmlquote($input{$_}))
+      if (defined($input{$_})
+          && (!defined($DEFAULTVALUE{$_}) || $input{$_} ne $DEFAULTVALUE{$_}));
+  }
+  print "</fieldset>\n</form>\n";
+  html_footer();
+}
+
+
+sub flush_diff_rows($$$$)
+{
+  my ($leftColRef, $rightColRef, $leftRow, $rightRow) = @_;
+
+  return unless defined($state);
+
+  if ($state eq "PreChangeRemove") {    # we just got remove-lines before
+    for (my $j = 0; $j < $leftRow; $j++) {
+      printf(<<EOF, spacedHtmlText(@$leftColRef[$j]));
+<tr>
+ <td class="diff diff-removed">&nbsp;%s</td>
+ <td class="diff diff-empty">&nbsp;</td>
+</tr>
+EOF
+    }
+  } elsif ($state eq "PreChange") {     # state eq "PreChange"
+                                        # we got removes with subsequent adds
+    if (HAS_EDIFF) {
+      # construct the suffix tree
+      my $left_diff = join("\n", @$leftColRef[0..$leftRow-1]);
+      my $right_diff = join("\n", @$rightColRef[0..$rightRow-1]);
+      my $diff_str = String::Ediff::ediff($left_diff, $right_diff);
+
+      my @diff_str = split(/ /, $diff_str);
+      my $INFINITY = 10000000;
+      push(@diff_str, ($INFINITY) x 8);
+      my ($idx, $b1, $e1, $lb1, $le1, $b2, $e2, $lb2, $le2) =
+        (0, @diff_str[0..7]);
+      my ($l_cul, $r_cul) = (0, 0);
+      my ($ldx, $rdx) = (0, 0);
+      my (@left_html, @right_html);
+      for (my $j = 0; $j < $leftRow; $j++) {
+        my $line_len = length(@$leftColRef[$j]);
+        my $line = @$leftColRef[$j];
+        $l_cul += length($line) + 1; # includes "\n"
+        my $l_culx = $l_cul - 1; # not includes "\n"
+        if ($j < $lb1) {
+          $line = spacedHtmlText($line);
+          push(@left_html, "<td class=\"diff diff-changed\">$line</td>");
+        } elsif ($lb1 == $j) {
+          my $html_line;
+          while ($lb1 == $j) {
+            my $begin_char = $l_culx - $b1;
+
+            $line =~ /^(.*)(.{$begin_char})$/;
+            $html_line .= spacedHtmlText($1) .
+              '</span><span class="diff diff-unchanged">';
+            $line = $2;
+            last if ($j != $le1);
+
+            my $end_char = $l_culx - $e1;
+            $line =~ /^(.*)(.{$end_char})$/;
+            $html_line .= spacedHtmlText($1) .
+              '</span><span class="diff diff-changed">';
+            $line = $2;
+
+            $idx++;
+            my ($tb1, $te1, $tlb1, $tle1, $tb2, $te2, $tlb2, $tle2) =
+              ($b1, $e1, $lb1, $le1, $b2, $e2, $lb2, $le2);
+            ($b1, $e1, $lb1, $le1, $b2, $e2, $lb2, $le2) =
+              @diff_str[$idx*8..($idx+1)*8-1];
+            $lb1 = $INFINITY if ($lb1 < 0);
+            $lb2 = $INFINITY if ($lb2 < 0);
+            $le1 = $INFINITY if ($le1 < 0);
+            $le2 = $INFINITY if ($le2 < 0);
+            if ($te1 > $b1) {
+              ($b1, $lb1) = ($te1, $tle1);
+            }
+            if ($te2 > $b2) {
+              ($b2, $lb2) = ($te2, $tle2);
+            }
+          }
+          push(@left_html,
+               sprintf('<td><span class="diff diff-changed">%s%s</span></td>',
+                       $html_line, spacedHtmlText($line)));
+        } elsif ($le1 == $j) {
+          my $html_line;
+          while ($le1 == $j) {
+            my $end_char = $l_culx - $e1;
+            $line =~ /^(.*)(.{$end_char})$/;
+            $html_line .= spacedHtmlText($1) .
+              '</span><span class="diff diff-changed">';
+            $line = $2;
+
+            $idx++;
+            my ($tb1, $te1, $tlb1, $tle1, $tb2, $te2, $tlb2, $tle2) =
+              ($b1, $e1, $lb1, $le1, $b2, $e2, $lb2, $le2);
+            ($b1, $e1, $lb1, $le1, $b2, $e2, $lb2, $le2) =
+              @diff_str[$idx*8..($idx+1)*8-1];
+            $lb1 = $INFINITY if ($lb1 < 0);
+            $lb2 = $INFINITY if ($lb2 < 0);
+            $le1 = $INFINITY if ($le1 < 0);
+            $le2 = $INFINITY if ($le2 < 0);
+            if ($te1 > $b1) {
+              ($b1, $lb1) = ($te1, $tle1);
+            }
+            if ($te2 > $b2) {
+              ($b2, $lb2) = ($te2, $tle2);
+            }
+
+            last if ($lb1 != $j);
+
+            my $begin_char = $l_culx - $b1;
+
+            $line =~ /^(.*)(.{$begin_char})$/;
+            $html_line .= spacedHtmlText($1) .
+              '</span><span class="diff diff-unchanged">';
+            $line = $2;
+          }
+          push(@left_html,
+              sprintf('<td><span class="diff diff-unchanged">%s%s</span></td>',
+                      $html_line, spacedHtmlText($line)));
+        } else {
+          $line = spacedHtmlText($line);
+          push(@left_html, "<td class=\"diff diff-unchanged\">$line</td>");
+        }
+      }
+      ($idx, $b1, $e1, $lb1, $le1, $b2, $e2, $lb2, $le2) =
+        (0, @diff_str[0..7]);
+      $lb1 = $INFINITY if ($lb1 < 0);
+      $lb2 = $INFINITY if ($lb2 < 0);
+      $le1 = $INFINITY if ($le1 < 0);
+      $le2 = $INFINITY if ($le2 < 0);
+      for (my $j = 0; $j < $rightRow; $j++) {
+        my $line_len = length(@$rightColRef[$j]);
+        my $line = @$rightColRef[$j];
+        $r_cul += length($line) + 1; # includes "\n"
+        my $r_culx = $r_cul - 1; # not includes "\n"
+        if ($j < $lb2) {
+          $line = spacedHtmlText($line);
+          push(@right_html, "<td class=\"diff diff-changed\">$line</td>");
+        } elsif ($lb2 == $j) {
+          my $html_line;
+          while ($lb2 == $j) {
+            my $begin_char = $r_culx - $b2;
+
+            $line =~ /^(.*)(.{$begin_char})$/;
+            $html_line .= spacedHtmlText($1) .
+              '</span><span class="diff diff-unchanged">';
+            $line = $2;
+
+            last if ($j != $le2);
+
+            my $end_char = $r_culx - $e2;
+            $line =~ /^(.*)(.{$end_char})$/;
+            $html_line .= spacedHtmlText($1) .
+              '</span><span class="diff diff-changed">';
+            $line = $2;
+
+            $idx++;
+            my ($tb1, $te1, $tlb1, $tle1, $tb2, $te2, $tlb2, $tle2) =
+              ($b1, $e1, $lb1, $le1, $b2, $e2, $lb2, $le2);
+            ($b1, $e1, $lb1, $le1, $b2, $e2, $lb2, $le2) =
+              @diff_str[$idx*8..($idx+1)*8-1];
+            $lb1 = $INFINITY if ($lb1 < 0);
+            $lb2 = $INFINITY if ($lb2 < 0);
+            $le1 = $INFINITY if ($le1 < 0);
+            $le2 = $INFINITY if ($le2 < 0);
+            if ($te1 > $b1) {
+              ($b1, $lb1) = ($te1, $tle1);
+            }
+            if ($te2 > $b2) {
+              ($b2, $lb2) = ($te2, $tle2);
+            }
+          }
+          push(@right_html,
+               sprintf('<td><span class="diff diff-changed">%s%s</span></td>',
+                       $html_line, spacedHtmlText($line)));
+        } elsif ($le2 == $j) {
+          my $html_line;
+          while ($le2 == $j) {
+            my $end_char = $r_culx - $e2;
+            $line =~ /^(.*)(.{$end_char})$/;
+            $html_line .= spacedHtmlText($1) .
+              '</span><span class="diff diff-changed">';
+            $line = $2;
+
+            $idx++;
+            my ($tb1, $te1, $tlb1, $tle1, $tb2, $te2, $tlb2, $tle2) =
+              ($b1, $e1, $lb1, $le1, $b2, $e2, $lb2, $le2);
+            ($b1, $e1, $lb1, $le1, $b2, $e2, $lb2, $le2) =
+              @diff_str[$idx*8..($idx+1)*8-1];
+            $lb1 = $INFINITY if ($lb1 < 0);
+            $lb2 = $INFINITY if ($lb2 < 0);
+            $le1 = $INFINITY if ($le1 < 0);
+            $le2 = $INFINITY if ($le2 < 0);
+            if ($te1 > $b1) {
+              ($b1, $lb1) = ($te1, $tle1);
+            }
+            if ($te2 > $b2) {
+              ($b2, $lb2) = ($te2, $tle2);
+            }
+
+            last if ($lb2 != $j);
+
+            my $begin_char = $r_culx - $b2;
+            $line =~ /^(.*)(.{$begin_char})$/;
+            $html_line .= spacedHtmlText($1) .
+              '</span><span class="diff diff-unchanged">';
+            $line = $2;
+          }
+          push(@right_html,
+               sprintf('<td nowrap="nowrap"><span class="diff diff-unchanged"'.
+                       '>%s%s</span></td>',
+                       $html_line, spacedHtmlText($line)));
+        } else {
+          $line = spacedHtmlText ($line);
+          push @right_html, "<td class=\"diff diff-unchanged\">$line</td>";
+        }
+      }
+      for (my $j = 0; $j < $leftRow || $j < $rightRow ; $j++) { # dump out both cols
+        print  '<tr>';
+        if ($j < $leftRow) {
+          print $left_html[$j];
+        } else {
+          print '<td class="diff diff-changed-missing">&nbsp;</td>';
+        }
+        if ($j < $rightRow) {
+          print $right_html[$j];
+        } else {
+          print '<td class="diff diff-changed-missing">&nbsp;</td>';
+        }
+        print "</tr>\n";
+      }
+    } else {
+      for (my $j = 0; $j < $leftRow || $j < $rightRow; $j++) { # dump both cols
+        print "<tr>\n";
+        if ($j < $leftRow) {
+          print '<td class="diff diff-changed">&nbsp;' .
+            spacedHtmlText(@$leftColRef[$j]) . '</td>';
+        } else {
+          print '<td class="diff diff-changed-missing">&nbsp;</td>';
+        }
+        print "\n";
+
+        if ($j < $rightRow) {
+          print '<td class="diff diff-changed">&nbsp;' .
+            spacedHtmlText(@$rightColRef[$j]) . '</td>';
+        } else {
+          print '<td class="diff diff-changed-missing">&nbsp;</td>';
+        }
+        print "\n</tr>\n";
+      }
+    }
+  }
+}
+
+
+#
+# Generates "human readable", HTMLified diffs.
+#
+sub human_readable_diff($$)
+{
+  my ($fh, $rev) = @_;
+
+  (my $where_nd       = $where)       =~ s|\.diff$||;
+  (my $filename       = $where_nd)    =~ s|^.*/||;
+  (my $pathname       = $where_nd)    =~ s|((?<=/)Attic/)?[^/]*$||;
+  (my $scriptwhere_nd = $scriptwhere) =~ s|\.diff$||;
+
+  navigateHeader($scriptwhere_nd, $pathname, $filename, $rev, 'diff');
+
+  # Read header to pick up read revision and date, if possible.
+
+  my ($r1d, $r1r, $r2d, $r2r);
+  while (<$fh>) {
+    ($r1d, $r1r) = /\t(.*)\t(.*)$/ if (/^--- /);
+    ($r2d, $r2r) = /\t(.*)\t(.*)$/ if (/^\+\+\+ /);
+    last if (/^\+\+\+ /);
+  }
+
+  my ($rev1, $date1);
+  if (defined($r1r) && $r1r =~ /^(\d+\.)+\d+$/) {
+    $rev1  = $r1r;
+    $date1 = $r1d;
+  }
+  my ($rev2, $date2);
+  if (defined($r2r) && $r2r =~ /^(\d+\.)+\d+$/) {
+    $rev2  = $r2r;
+    $date2 = $r2d;
+  }
+  $rev1  = 'unknown-left'  unless defined($rev1);
+  $rev2  = 'unknown-right' unless defined($rev2);
+  $date1 = defined($date1) ? ', ' . htmlquote($date1) : '';
+  $date2 = defined($date2) ? ', ' . htmlquote($date2) : '';
+
+  my $link = uri_escape($filename) . $query;
+
+  # Using <table style=\"border: none\" here breaks NS 4.x badly...
+  print <<EOF;
+<h3 style="text-align: center">Diff for /$where_nd between versions $rev1 and $rev2</h3>
+<table border="0" cellspacing="0" cellpadding="0" width="100%" summary="Diff output">
+<tr style="background-color: #ffffff">
+<th style="text-align: center; vertical-align: top" width="50%">
+<a href="$link;rev=$rev1">version $rev1</a>$date1
+</th>
+<th style="text-align: center; vertical-align: top" width="50%">
+<a href="$link;rev=$rev2">version $rev2</a>$date2
+</th>
+</tr>
+EOF
+
+  # Process diff text
+  # prefetch several lines
+  my @buf = head($fh);
+  my %d = scan_directives(@buf);
+
+  my $leftRow  = 0;
+  my $rightRow = 0;
+  my ($difftxt, @rightCol, @leftCol, $oldline, $newline, $funname);
+
+  $link .= ';content-type=text%2Fx-cvsweb-markup';
+  $link .= ';ln=1' unless ($link =~ /\?.*\bln=1\b/);
+
+  while (@buf || !eof($fh)) {
+    $difftxt = @buf ? shift @buf : <$fh>;
+
+    if ($difftxt =~ /^@@/) {
+      ($oldline, $newline, $funname) =
+        $difftxt =~ /@@ \-([0-9]+).*\+([0-9]+).*@@(.*)/;
+      $funname = htmlquote($funname);
+      $funname =~ s/\s/&nbsp;/go;
+      $funname &&= "&nbsp;<span style=\"font-size: smaller\">$funname</span>";
+      my $ol = $oldline || 1;
+      my $nl = $newline || 1;
+
+      print <<EOF;
+<tr>
+<td width="50%" class="diff-heading">
+ <b><a href="$link;rev=$rev1#l$ol">Line&nbsp;$oldline</a></b>$funname
+</td>
+<td width="50%" class="diff-heading">
+ <b><a href="$link;rev=$rev2#l$nl">Line&nbsp;$newline</a></b>$funname
+</td>
+</tr>
+EOF
+
+      $state    = "dump";
+      $leftRow  = 0;
+      $rightRow = 0;
+    } else {
+      my ($diffcode, $rest) = $difftxt =~ /^([-+ ])(.*)/;
+      $diffcode = '' unless defined($diffcode);
+      $_ = $rest;
+
+      #########
+      # little state machine to parse unified-diff output (Hen, zeller at think.de)
+      # in order to get some nice 'ediff'-mode output
+      # states:
+      #  "dump"             - just dump the value
+      #  "PreChangeRemove"  - we began with '-' .. so this could be the start of a 'change' area or just remove
+      #  "PreChange"        - okey, we got several '-' lines and moved to '+' lines -> this is a change block
+      ##########
+
+      if ($diffcode eq '+') {
+        if ($state eq "dump")
+        {    # 'change' never begins with '+': just dump out value
+          $_ = spacedHtmlText($rest, $d{tabstop});
+          printf(<<EOF, $_);
+<tr>
+ <td class="diff diff-empty">&nbsp;</td>
+ <td class="diff diff-added">&nbsp;%s</td>
+</tr>
+EOF
+        } else {    # we got minus before
+          $state = "PreChange";
+          $rightCol[$rightRow++] = $_;
+        }
+      } elsif ($diffcode eq '-') {
+        $state = "PreChangeRemove";
+        $leftCol[$leftRow++] = $_;
+      } else {    # empty diffcode
+        flush_diff_rows \@leftCol, \@rightCol, $leftRow, $rightRow;
+        $_ = spacedHtmlText($rest, $d{tabstop});
+        printf(<<EOF, $_, $_);
+<tr>
+ <td class="diff diff-same">&nbsp;%s</td>
+ <td class="diff diff-same">&nbsp;%s</td>
+</tr>
+EOF
+        $state    = "dump";
+        $leftRow  = 0;
+        $rightRow = 0;
+      }
+    }
+  }
+  close($fh);
+
+  flush_diff_rows \@leftCol, \@rightCol, $leftRow, $rightRow;
+
+  # state is empty if we didn't have any change
+  if (!$state) {
+    print <<EOF;
+<tr>
+ <td colspan="2">&nbsp;</td>
+</tr>
+<tr class="diff diff-empty">
+ <td colspan="2" align="center"><b>- No viewable change -</b></td>
+</tr>
+EOF
+  }
+
+  printf(<<EOF, $scriptwhere);
+</table>
+<hr style="width: 100%%" />
+<form method="get" action="%s">
+<div style="float: left">
+<label for="f">Diff format:<br />
+EOF
+  printDiffSelectStickyVars();
+  printDiffSelect($use_java_script);
+  printf(<<EOF, $rev1, $rev2);
+</label>
+<input type="submit" value="Show" />
+</div>
+<table style="float: right; border: thin outset" cellspacing="0" cellpadding="1" title="Legend" summary="Legend">
+ <tr>
+  <td align="center" class="diff diff-removed">Removed from v.%s</td>
+  <td class="diff diff-empty">&nbsp;</td>
+ </tr><tr class="diff diff-changed">
+  <td align="center" colspan="2">changed lines</td>
+ </tr><tr>
+  <td class="diff diff-empty">&nbsp;</td>
+  <td align="center" class="diff diff-added">Added in v.%s</td>
+ </tr>
+</table>
+</form>
+<br clear="all" />
+EOF
+}
+
+
+sub doEnscript($$$;$)
+{
+  my ($filehandle, $highlight, $linenumbers, $lang) = @_;
+  $lang ||= 'cvsweb';
+
+  my @cmd = ($CMD{enscript},
+             @enscript_options,
+             '-q', "--language=$lang", '-o', '-', "--highlight=$highlight");
+
+  local *ENSCRIPT_OUT;
+  my ($h, $err) =
+    startproc(\@cmd, $filehandle, '>pipe', \*ENSCRIPT_OUT);
+  fatal('500 Internal Error', $err) unless $h;
+
+  # We could short-circuit and have enscript output directly to STDOUT above,
+  # but that doesn't work with mod_perl (at least some 1.99 versions).
+  if ($linenumbers) {
+    my $ln = 0;
+    while (<ENSCRIPT_OUT>) {
+      printf '<a id="l%d" class="src">%5d: </a>', (++$ln) x 2;
+      print $_;
+    }
+  } else {
+    local $/ = undef;
+    print <ENSCRIPT_OUT>;
+  }
+  $h->finish();
+}
+
+
+#
+# The passed in $path and $filename should not be URI escaped, and $swhere
+# *should* be.
+#
+sub navigateHeader($$$$$;$)
+{
+  my ($swhere, $path, $filename, $rev, $title, $moddate) = @_;
+  $swhere = "" if ($swhere eq $scriptwhere);
+  $swhere = './' . uri_escape($filename) if ($swhere eq "");
+
+  my $qfile = htmlquote($filename);
+  my $qpath = htmlquote($path);
+  my $trev  = $rev ? " - $rev" : '';
+
+  http_header('', $moddate);
+
+  print <<EOF;
+$HTML_DOCTYPE
+<html>
+<head>
+<title>$qpath$qfile - $title$trev</title>
+$HTML_META$CSS</head>
+<body class="src">
+<table class="navigate-header" width="100%" summary="Navigation">
+ <tr>
+  <td>
+EOF
+
+  print &link($backicon, "$swhere$query" . ($rev ? "#rev$rev" : ''));
+  printf '<b>Return to %s CVS log',
+    &link($qfile, "$swhere$query" . ($rev ? "#rev$rev" : ''));
+  print "</b> $fileicon</td>";
+
+  printf(<<EOF, $diricon, &clickablePath($path, 1));
+  <td style="text-align: right">%s <b>Up to %s</b></td>
+ </tr>
+</table>
+EOF
+}
+
+
+sub plural_write($$)
+{
+  my ($num, $text) = @_;
+  if ($num != 1) {
+    $text .= "s";
+  }
+
+  if ($num > 0) {
+    return join (' ', $num, $text);
+  } else {
+    return "";
+  }
+}
+
+
+##
+# print readable timestamp in terms of
+# '..time ago'
+# H. Zeller <zeller at think.de>
+##
+sub readableTime($$)
+{
+  my ($secs, $long) = @_;
+
+  # This function works correctly for time >= 2 seconds.
+  return 'very little time' if ($secs < 2);
+
+  my %desc = (
+              1        => 'second',
+              60       => 'minute',
+              3600     => 'hour',
+              86400    => 'day',
+              604800   => 'week',
+              2628000  => 'month',
+              31536000 => 'year'
+             );
+
+  my @breaks = sort { $a <=> $b } keys %desc;
+  my $i = 0;
+
+  while ($i <= $#breaks && $secs >= 2 * $breaks[$i]) {
+    $i++;
+  }
+  $i--;
+  my $break  = $breaks[$i];
+  my $retval = plural_write(int($secs / $break), $desc{$break});
+
+  if ($long == 1 && $i > 0) {
+    my $rest = $secs % $break;
+    $i--;
+    $break = $breaks[$i];
+    my $resttime = plural_write(int($rest / $break), $desc{$break});
+    if ($resttime) {
+      $retval .= ", $resttime";
+    }
+  }
+
+  return $retval;
+}
+
+
+#
+# Returns a htmlified path where each directory is a link for faster
+# navigation.  $clickLast controls whether the basename
+# (last directory/file) is a link as well.  The passed in $pathname should
+# *not* be URI escaped.
+#
+sub clickablePath($$)
+{
+  my ($pathname, $clickLast) = @_;
+
+  my $root = '[' . htmlquote($CVSROOTdescr{$cvstree} || $cvstree) . ']';
+
+  # This should never happen (see chooseCVSRoot()), but let's be sure...
+  return $root if ($pathname eq '/');
+
+  my $retval =
+    ' ' . &link($root, sprintf('%s/%s#dirlist', $scriptname, $query));
+  my $wherepath = '';
+  my ($lastslash) = $pathname =~ m|/$|;
+
+  foreach (split(m|/|, $pathname)) {
+    $retval .= ' / ';
+    $wherepath .= "/$_";
+    my $last = "$wherepath/" eq "/$pathname" || $wherepath eq "/$pathname";
+
+    if ($clickLast || !$last) {
+      $retval .= &link(htmlquote($_),
+                       join ('',
+                             $scriptname, uri_escape_path($wherepath),
+                             (!$last || $lastslash ? '/' : ''), $query,
+                             (!$last || $lastslash ? "#dirlist" : "")));
+    } else {    # do not make a link to the current dir
+      $retval .= htmlquote($_);
+    }
+  }
+  return $retval;
+}
+
+
+sub chooseCVSRoot()
+{
+  print "<form method=\"get\" action=\"$scriptwhere\">\n<p>\n";
+  if (2 <= @CVSROOT) {
+    foreach my $k (keys %input) {
+      printf("<input type=\"hidden\" name=\"%s\" value=\"%s\" />\n",
+             htmlquote($k), htmlquote($input{$k}))
+        if ($input{$k} && $k ne 'cvsroot');
+    }
+
+    printf(<<EOF, $use_java_script ? ' onchange="this.form.submit()"' : '');
+<label for="cvsroot" accesskey="C">CVS Root:
+<select id="cvsroot" name="cvsroot"%s>
+EOF
+
+    foreach my $k (@CVSROOT) {
+      printf("<option value=\"%s\"%s>%s</option>\n",
+             htmlquote($k),
+             ($k eq $cvstree) ? ' selected="selected"' : '',
+             htmlquote($CVSROOTdescr{$k} || $k));
+    }
+    print '</select></label>';
+  } else {
+
+    # no choice -- but we need the form to select module/path,
+    # at least for Netscape
+    printf "CVS Root: <b>[%s]</b>",
+      htmlquote($CVSROOTdescr{$cvstree} || $cvstree);
+  }
+
+  print <<EOF;
+<label for="mpath" accesskey="M">
+Module path or alias:
+<input type="text" id="mpath" name="path" value="" size="15" />
+</label>
+<input type="submit" value="Go" accesskey="O" />
+</p>
+</form>
+EOF
+}
+
+
+sub chooseMirror()
+{
+  # This code comes from the original BSD-cvsweb
+  # and may not be useful for your site; If you don't
+  # set %MIRRORS this won't show up, anyway.
+  scalar(%MIRRORS) or return;
+
+  # Should perhaps exclude the current site somehow...
+  print "\n<p>\nThis CVSweb is mirrored in\n";
+
+  my @tmp = map(&link(htmlquote($_), $MIRRORS{$_}), sort keys %MIRRORS);
+  my $tmp = pop (@tmp);
+
+  if (scalar(@tmp)) {
+    print join (', ', @tmp), ' and ';
+  }
+
+  print "$tmp.\n</p>\n";
+}
+
+
+sub fileSortCmp()
+{
+  (my $af = $a) =~ s/,v$//;
+  (my $bf = $b) =~ s/,v$//;
+  my ($rev1, $date1, $log1, $author1, $filename1) = @{$fileinfo{$af}}
+    if (defined($fileinfo{$af}));
+  my ($rev2, $date2, $log2, $author2, $filename2) = @{$fileinfo{$bf}}
+    if (defined($fileinfo{$bf}));
+
+  my $comp = 0;
+  if (defined($filename1) && defined($filename2) &&
+      $af eq $filename1   && $bf eq $filename2)
+  {
+
+    # Two files
+    $comp = -revcmp($rev1, $rev2)             if ($byrev  && $rev1  && $rev2);
+    $comp = ($date2   <=> $date1)             if ($bydate && $date1 && $date2);
+    if ($input{ignorecase}) {
+      $comp = (uc($log1)    cmp uc($log2))    if ($bylog && $log1 && $log2);
+      $comp = (uc($author1) cmp uc($author2)) if ($byauthor &&
+                                                  $author1 && $author2);
+    } else {
+      $comp = ($log1    cmp $log2)            if ($bylog && $log1 && $log2);
+      $comp = ($author1 cmp $author2)         if ($byauthor &&
+                                                  $author1 && $author2);
+    }
+  }
+
+  if ($comp == 0) {
+
+    # Directories first, then files under version control,
+    # then other, "rogue" files.
+    # Sort by filename if no other criteria available.
+
+    my $ad = (
+      (-d "$fullname/$a")
+      ? 'D'
+      : (defined($fileinfo{$af}) ? 'F' : 'R')
+    );
+    my $bd = (
+      (-d "$fullname/$b")
+      ? 'D'
+      : (defined($fileinfo{$bf}) ? 'F' : 'R')
+    );
+    (my $c = $a) =~ s|.*/||;
+    (my $d = $b) =~ s|.*/||;
+
+    my ($l, $r) = ("$ad$c", "$bd$d");
+    $comp = $input{ignorecase} ? (uc($l) cmp uc($r)) : ($l cmp $r);
+
+    # Parent dir is always first, then Attic.
+    if ($comp != 0) {
+      if ($l eq 'D..') {
+        $comp = -1;
+      } elsif ($r eq 'D..') {
+        $comp = 1;
+      } elsif ($l eq 'DAttic') {
+        $comp = -1;
+      } elsif ($r eq 'DAttic') {
+        $comp = 1;
+      }
+    }
+  }
+  return $comp;
+}
+
+#
+# Returns a URL to download the selected revision.
+# Expects the passed in URL to be URI escaped, relative, and without a query
+# string.
+#
+sub download_url($$;$)
+{
+  my ($url, $revision, $mimetype) = @_;
+  my @dots = $revision =~ /\./g;
+  $revision =~ s/\b0\.(?=\d+$)// if (scalar(@dots) & 1);
+
+  if (!defined($mimetype) || $mimetype !~ CVSWEBMARKUP) {
+    my $path = $where;
+    $path =~ s|[^/]+$||;
+    $url = "$scriptname/$CheckoutMagic/$path$url";
+  }
+  $url .= '?rev=' . uri_escape($revision);
+  $url .= ';content-type=' . uri_escape($mimetype) if $mimetype;
+
+  return $url;
+}
+
+#
+# Returns a link to download the selected revision.
+# Expects the passed in URL to be URI escaped, relative,
+# and without a query string.
+#
+sub download_link($$$;$)
+{
+  my ($url, $revision, $textlink, $mimetype) = @_;
+  return sprintf('<a href="%s" class="download-link">%s</a>',
+                 download_url($url, $revision, $mimetype) . $barequery,
+                 htmlquote($textlink));
+}
+
+#
+# Returns a URL to display the selected revision.
+# Expects the passed in URL to be URI escaped, and without a query string.
+#
+sub display_url($$;$)
+{
+  my ($url, $revision, $mimetype) = @_;
+  $url .= '?rev=' . uri_escape($revision);
+  $url .= ';content-type=' . uri_escape($mimetype) if $mimetype;
+  return $url;
+}
+
+#
+# Returns a link to display the selected revision.
+# Expects the passed in URL to be URI escaped, and without a query string.
+#
+sub display_link($$;$$)
+{
+  my ($url, $revision, $textlink, $mtype) = @_;
+  $textlink = $revision unless defined($textlink);
+  return sprintf('<a href="%s" class="display-link">%s</a>',
+                 display_url($url, $revision, $mtype) . $barequery,
+                 htmlquote($textlink));
+}
+
+#
+# Expects the passed in URL to be URI escaped, and without a query string.
+# The passed in link text should be already HTML escaped as appropriate.
+#
+sub graph_link($;$)
+{
+  my ($url, $text) = @_;
+  $text ||= $graphicon;
+  return sprintf('<a href="%s?graph=1%s">%s</a>', $url, $barequery, $text);
+}
+
+#
+# Returns a link to CVSHistory for the given directory and filename.
+#
+sub history_link($$;$)
+{
+  my ($dir, $file, $text) = @_;
+  $dir  ||= '';
+  $file ||= '';
+  $text ||= 'History';
+  return &link($text,
+               sprintf('%s?cvsroot=%s;dsearch=%s;fsearch=%s;limit=1',
+                       $cvshistory_url, uri_escape($input{cvsroot} || ''),
+                       uri_escape($dir), uri_escape($file)));
+}
+
+# Returns a Query string with the
+# specified parameter toggled
+sub toggleQuery($;$)
+{
+  my ($toggle, $value) = @_;
+
+  my %vars = %input;
+
+  if (defined($value)) {
+    $vars{$toggle} = $value;
+  } else {
+    $vars{$toggle} = $vars{$toggle} ? 0 : 1;
+  }
+
+  # Build a new query of non-default paramenters
+  my $newquery = "";
+  foreach my $var (@stickyvars) {
+    my ($value)   = defined($vars{$var})         ? $vars{$var}         : "";
+    my ($default) = defined($DEFAULTVALUE{$var}) ? $DEFAULTVALUE{$var} : "";
+
+    if ($value ne $default) {
+      $newquery .= ';' if ($newquery ne "");
+      $newquery .= uri_escape($var) . '=' . uri_escape($value);
+    }
+  }
+
+  if ($newquery) {
+    return '?' . $newquery;
+  }
+  return "";
+}
+
+sub htmlquote($)
+{
+  local ($_) = @_;
+  # Special Characters; RFC 1866
+  s/&/&amp;/g;
+  s/\"/&quot;/g;
+  s/</&lt;/g;
+  s/>/&gt;/g;
+  return $_;
+}
+
+sub htmlunquote($)
+{
+  local ($_) = @_;
+  # Special Characters; RFC 1866
+  s/&quot;/\"/g;
+  s/&lt;/</g;
+  s/&gt;/>/g;
+  s/&amp;/&/g;
+  return $_;
+}
+
+sub uri_escape_path($)
+{
+  return join('/', map(uri_escape($_), split(m|/+|, shift, -1)));
+}
+
+sub http_header(;$$)
+{
+  my ($content_type, $moddate) = @_;
+  $content_type ||= 'text/html';
+
+  $content_type .= "; charset=$charset"
+    if ($charset && $content_type =~ m,^text/,);
+
+  # Note that in the following, we explicitly join() and concatenate the
+  # headers instead of printing them as an array.  This is because some
+  # systems, eg. early versions of mod_perl 2 don't quite get it if the
+  # last \r\n\r\n isn't included in the last "payload" header print().
+
+  my @headers = ();
+  # TODO: ctime(3) from scalar gmtime() isn't HTTP compliant, see HTTP::Date.
+  push(@headers, 'Last-Modified: ' . scalar gmtime($moddate) . ' GMT')
+    if $moddate;
+  push(@headers, 'Content-Type: ' . $content_type);
+
+  if ($allow_compress && $maycompress) {
+    if (HAS_ZLIB
+        || (defined($CMD{gzip}) && open(GZIP, "| $CMD{gzip} -1 -c")))
+    {
+
+      push(@headers, 'Content-Encoding: x-gzip');
+      push(@headers, 'Vary: Accept-Encoding');     # RFC 2616, 14.44
+      print join("\r\n", @headers) . "\r\n\r\n";
+
+      $| = 1;
+      $| = 0;                                      # Flush header output.
+
+      tie(*GZIP, __PACKAGE__, \*STDOUT) if HAS_ZLIB;
+      select(GZIP);
+      $gzip_open = 1;
+
+    } else {
+
+      print join("\r\n", @headers) . "\r\n\r\n";
+      printf
+        '<span style="font-size: smaller">Unable to find gzip binary in the <b>$command_path</b> (<code>%s</code>) to compress output</span><br />',
+          htmlquote(join(':', @command_path));
+    }
+
+  } else {
+    print join("\r\n", @headers) . "\r\n\r\n";
+  }
+}
+
+
+sub html_header($;$)
+{
+  my ($title, $moddate) = @_;
+  $title = htmlquote($title);
+  my $l = $logo || '';
+  http_header('text/html', $moddate);
+  print <<EOH;
+$HTML_DOCTYPE
+<html>
+<head>
+<title>$title</title>
+$HTML_META$CSS</head>
+<body>
+$l <h1>$title</h1>
+EOH
+}
+
+sub html_footer()
+{
+  print "<hr />\n<address>$address</address>\n" if $address;
+  print "</body>\n</html>\n";
+}
+
+sub link_tags($)
+{
+  my ($tags) = @_;
+
+  (my $filename = $where) =~ s|^.*/||;
+  my $fileurl = './' . uri_escape($filename);
+
+  my $ret = "";
+  foreach my $sym (split(", ", $tags)) {
+    $ret .= ",\n" if ($ret ne "");
+    $ret .= &link(htmlquote($sym),
+                  $fileurl . toggleQuery('only_with_tag', $sym));
+  }
+  return $ret;
+}
+
+
+#
+# See if a file/dir is listed in the config file's @ForbiddenFiles list.
+# Takes a full file system path or one relative to $cvsroot, and strips the
+# trailing ",v" if present, then compares.  Returns 1 if forbidden, else 0.
+#
+sub forbidden($)
+{
+  (my $path = canonpath(shift)) =~ s/,v$//;
+  $path =~ s|^$cvsroot/+||;
+  for my $forbidden_re (@ForbiddenFiles) {
+    return 1 if ($path =~ $forbidden_re);
+  }
+  return 0;
+}
+
+
+#
+# Starts a process using IPC::Run.  All arguments are passed to
+# IPC::Run::start() as-is.  Returns an array ($harness, $error) where
+# $harness is from IPC::Run if start() succeeds, undef otherwise.  In case
+# of an error, $error contains the error message.
+#
+sub startproc(@)
+{
+  my $h = my $err = undef;
+  eval {
+    local $SIG{__DIE__};
+    $h = IPC::Run::start(@_) or die("return code: $?");
+  };
+  if ($@) {
+    $h->finish() if $h;
+    $h = undef;
+    $err = "'@{$_[0]}' failed: $@";
+  }
+  return ($h, $err);
+}
+
+#
+# Runs a process using IPC::Run.  All arguments are passed to
+# IPC::Run::run() as-is.  Returns an array ($exitcode, $errormsg).
+#
+sub runproc(@)
+{
+  eval {
+    local $SIG{__DIE__};
+    IPC::Run::run(@_);
+  };
+  my $exitcode = $? >> 8;
+  my $errormsg  = undef;
+  if ($@) {
+    $exitcode ||= -1;
+    $errormsg = "'@{$_[0]}' failed: $@";
+  }
+  return ($exitcode, $errormsg);
+}
+
+#
+# Check out a file to a temporary file.
+#
+sub checkout_to_temp($$$)
+{
+  my ($cvsroot, $cvsname, $rev) = @_;
+
+  # Pipe given cvs file into a temporary place.
+  my ($temp_fh, $temp_fn) = tempfile('.cvsweb.XXXXXXXX', DIR => tmpdir());
+
+  my @cmd = ($CMD{cvs}, @cvs_options, '-Qd', $cvsroot,
+             'co', '-p', "-r$rev", $cvsname);
+
+  local (*DIFF_OUT);
+  my ($h, $err) = startproc(\@cmd, \"", '>pipe', \*DIFF_OUT);
+  if ($h) {
+    local $/ = undef;
+    print $temp_fh <DIFF_OUT>;
+    $h->finish();
+    close($temp_fh);
+  } else {
+    close($temp_fh);
+    unlink($temp_fn);
+    fatal('500 Internal Error',
+          'Checkout failure (exit status %s), output: <pre>%s</pre>',
+          $? >> 8 || -1, $err);
+  }
+
+  return $temp_fn;
+}
+
+#
+# Close the GZIP handle, and remove the tie.
+#
+sub gzipclose
+{
+  if ($gzip_open) {
+    select(STDOUT);
+    close(GZIP);
+    untie *GZIP;
+    $gzip_open = 0;
+  }
+}
+
+# implement a gzipped file handle via the Compress:Zlib compression
+# library.
+
+sub MAGIC1() { 0x1f }
+sub MAGIC2() { 0x8b }
+sub OSCODE() { 3 }
+
+sub TIEHANDLE
+{
+  my ($class, $out) = @_;
+  my ($d) = Compress::Zlib::deflateInit(
+    -Level      => Compress::Zlib::Z_BEST_COMPRESSION(),
+    -WindowBits => -Compress::Zlib::MAX_WBITS()
+    )
+    or return undef;
+  my ($o) = { handle => $out,
+              dh     => $d,
+              crc    => 0,
+              len    => 0,
+            };
+  my ($header) = pack("c10",
+                      MAGIC1, MAGIC2, Compress::Zlib::Z_DEFLATED(),
+                      0, 0, 0, 0, 0, 0, OSCODE);
+  print {$o->{handle}} $header;
+  return bless($o, $class);
+}
+
+sub PRINT
+{
+  my ($o)   = shift;
+  my ($buf) = join (defined($,) ? $, : "", @_);
+  my ($len) = length($buf);
+  my ($compressed, $status) = $o->{dh}->deflate($buf);
+  print {$o->{handle}} $compressed if defined($compressed);
+  $o->{crc} = Compress::Zlib::crc32($buf, $o->{crc});
+  $o->{len} += $len;
+  return $len;
+}
+
+sub PRINTF
+{
+  my ($o)   = shift;
+  my ($fmt) = shift;
+  my ($buf) = sprintf($fmt, @_);
+  my ($len) = length($buf);
+  my ($compressed, $status) = $o->{dh}->deflate($buf);
+  print {$o->{handle}} $compressed if defined($compressed);
+  $o->{crc} = Compress::Zlib::crc32($buf, $o->{crc});
+  $o->{len} += $len;
+  return $len;
+}
+
+sub WRITE
+{
+  my ($o, $buf, $len, $off) = @_;
+  my ($compressed, $status) = $o->{dh}->deflate(substr($buf, 0, $len));
+  print {$o->{handle}} $compressed if defined($compressed);
+  $o->{crc} = Compress::Zlib::crc32(substr($buf, 0, $len), $o->{crc});
+  $o->{len} += $len;
+  return $len;
+}
+
+sub CLOSE
+{
+  my ($o) = @_;
+  return if !defined($o->{dh});
+  my ($buf) = $o->{dh}->flush();
+  $buf .= pack("V V", $o->{crc}, $o->{len});
+  print {$o->{handle}} $buf;
+  undef $o->{dh};
+}
+
+sub DESTROY
+{
+  my ($o) = @_;
+  CLOSE($o);
+}
+
+# Local variables:
+# indent-tabs-mode: nil
+# cperl-indent-level: 2
+# End:


Property changes on: trunk/gforge_base/evolvisforge/plugins.test/scmcvs/cgi-bin/cvsweb.ori
___________________________________________________________________
Added: svn:executable
   + *

Added: trunk/gforge_base/evolvisforge/plugins.test/scmcvs/common/CVSPlugin.class
===================================================================
--- trunk/gforge_base/evolvisforge/plugins.test/scmcvs/common/CVSPlugin.class	                        (rev 0)
+++ trunk/gforge_base/evolvisforge/plugins.test/scmcvs/common/CVSPlugin.class	2010-02-26 00:19:01 UTC (rev 4850)
@@ -0,0 +1,282 @@
+<?php
+
+require_once('common/include/User.class');
+
+class CVSPlugin extends SCM {
+	function CVSPlugin () {
+		$this->SCM () ;
+		$this->name = 'scmcvs';
+		$this->text = 'CVS';
+		$this->hooks[] = 'scm_page';
+		$this->hooks[] = 'scm_admin_update';
+		$this->hooks[] = 'scm_admin_page';
+		$this->hooks[] = 'scm_stats';
+
+		$this->hooks[] = 'scm_plugin';
+//		$this->hooks[] = 'group_approved';
+
+		require_once('plugins/scmcvs/config.php') ;
+
+		$this->default_cvs_server = $default_cvs_server ;
+		if ($cvs_root) {
+			$this->cvs_root = $cvs_root;
+		} else {
+			$this->cvs_root = "/cvsroot";
+		} 
+		//$this->default_cvs_server = $default_cvs_server ;
+		//$this->this_server = $this_server ;
+		$this->enabled_by_default = $enabled_by_default ;
+
+		$this->register () ;
+	}
+	
+	function getDefaultServer() {
+		return $this->default_cvs_server;
+	}
+
+	function CallHook ($hookname, $params) {
+		global $Language, $HTML;
+		
+		switch ($hookname) {
+		case 'scm_page':
+			$group_id = $params['group_id'] ;
+			$this->getPage ($group_id) ;
+			break ;
+		case 'scm_admin_update':
+			$this->adminUpdate ($params) ;
+			break ;
+		case 'scm_admin_page':
+			$this->getAdminPage ($params) ;
+			break ;
+		case 'scm_stats':
+			$this->getStats ($params) ;
+			break;
+// 		case "group_approved":
+// 			$this->groupApproved ($params) ;
+// 			break;
+		case 'scm_plugin':
+			$scm_plugins=& $params['scm_plugins'];
+			$scm_plugins[]=$this->name;
+			break;
+		default:
+			// Forgot something
+		}
+	}
+
+	function getPage ($group_id) {
+		global $Language, $HTML ;
+
+		$project =& group_get_object($group_id);
+		if (!$project || !is_object($project)) {
+			return false;
+		} elseif ($project->isError()) {
+			return false;
+		}
+		
+		if ($project->usesPlugin($this->name)) {
+		
+			print $Language->getText('plugin_scmcvs','documentation');
+
+			$cvsrootend=$project->getSCMBox().':/cvsroot/'.$project->getUnixName();
+			$cvsrootend = $project->getSCMBox().':'.$this->cvs_root.'/'.$project->getUnixName();
+
+			// CVS browser links must be displayed if
+			// project enables anon CVS or if logged-in
+			// user is a member of the group
+			$displayCvsBrowser = $project->enableAnonSCM();
+			if(session_loggedin()) {
+				$perm =& $project->getPermission(session_get_user());
+				if ($perm && is_object($perm) && !$perm->isError() && $perm->isMember()) {
+					$displayCvsBrowser = true;
+				}
+			}
+
+			// ######################## Table for summary info
+			?>
+			<table width="100%">
+			<tr valign="top">
+				<td width="65%">
+			 	<?php
+				// ######################## Anonymous CVS Instructions
+				if ($project->enableAnonSCM()){
+					echo $Language->getText('plugin_scmcvs', 'anoncvs');
+					print '
+						<p>
+						<tt>cvs -d :pserver:anonymous@' . $cvsrootend.' login</tt><br/>
+						<tt>cvs -d :pserver:anonymous@' . $cvsrootend.' checkout <em>'.$Language->getText('plugin_scmcvs', 'modulename').'</em></tt>
+						</p>';
+				}
+
+				// ######################## Developer Access
+				echo $Language->getText('plugin_scmcvs', 'devcvs');
+				print '
+					<p>
+					<tt>export CVS_RSH=ssh</tt><br/>
+					<tt>cvs -d :ext:<em>'.$Language->getText('plugin_scmcvs', 'developername').'</em>@'.$cvsrootend.' checkout <em>'.$Language->getText('plugin_scmcvs', 'modulename').'</em></tt>
+					</p>';
+
+				// ######################## CVS Snapshot
+				if ($displayCvsBrowser) {
+					print '
+						<p>
+						[<a href="/snapshots.php?group_id='.$group_id.'">'.$Language->getText('plugin_scmcvs', 'download_snapshot').'</a>]
+						</p>';
+	 			}
+				?>
+				</td>
+
+				<td width="35%" valign="top">
+				<?php
+				// ######################## CVS Browsing 
+				echo $HTML->boxTop($Language->getText('plugin_scmcvs', 'history'));
+				echo $this->getDetailedStats(array('group_id'=>$group_id)).'<p>';
+				if ($displayCvsBrowser){
+					echo $Language->getText('plugin_scmcvs', 'browsetree');
+					echo '<p>[<a href="/scm/viewvc.php/?root='.$project->getUnixName().'">'.$Language->getText('plugin_scmcvs', 'browseit').'</a>]</p>' ;
+					$hook_params['project_name'] = $project->getUnixName();
+					plugin_hook ("cvs_stats", $hook_params) ;
+				}
+				echo $HTML->boxBottom();
+				?>
+				</td>
+			</tr>
+			</table>
+			<?php
+		}	
+	}
+
+	function adminUpdate ($params) {
+		$group =& group_get_object($params['group_id']);
+		if (!$group || !is_object($group)) {
+			return false;
+		} elseif ($group->isError()) {
+			return false;
+		}
+		if ($group->usesPlugin($this->name)) {
+ 			if ($params['scmcvs_enable_anoncvs']) {
+				$group->SetUsesAnonSCM(true);
+			} else {
+				$group->SetUsesAnonSCM(false);
+ 			}
+ 			if ($params['scmcvs_enable_pserver']) {
+				$group->SetUsesPserver(true);
+			} else {
+				$group->SetUsesPserver(false);
+ 			}
+		}
+	}
+
+	// This function is used to render checkboxes below
+	function c($v) {
+		if ($v) {
+			return 'checked="checked"';
+		} else {
+			return '';
+		}
+	}
+
+	function getAdminPage ($params) {
+		global $Language;
+		$group =& group_get_object($params['group_id']);
+
+		if ($group->usesPlugin($this->name)) {
+			?>
+			<p>
+			<input type="checkbox" name="scmcvs_enable_anoncvs" value="1" <?php echo $this->c($group->enableAnonSCM()); ?> /><strong><?php echo $Language->getText('plugin_scmcvs','enable_anonymous_cvs') ?></strong>
+			<br />
+			<input type="checkbox" name="scmcvs_enable_pserver" value="1" <?php echo $this->c($group->enablePserver()); ?> /><strong><?php echo $Language->getText('plugin_scmcvs','enable_pserver') ?></strong>
+			</p>
+			<?php
+		}
+	}
+
+	function getStats ($params) {
+		global $Language ;
+		$group_id = $params['group_id'] ;
+		$project =& group_get_object($group_id);
+		if (!$project || !is_object($project)) {
+			return false;
+		} elseif ($project->isError()) {
+			return false;
+		}
+		
+		if ($project->usesPlugin($this->name)) {
+			$result = db_query("
+				SELECT sum(commits) AS commits, sum(adds) AS adds
+				FROM stats_cvs_group
+				WHERE group_id='$group_id'");
+			$commit_num = db_result($result,0,'commits');
+			$add_num    = db_result($result,0,'adds');
+			if (!$commit_num) {
+				$commit_num=0;
+			}
+			if (!$add_num) {
+				$add_num=0;
+			}
+			echo ' (CVS: '.$Language->getText('plugin_scmcvs','cvs_commits',array(number_format($commit_num,0),number_format($add_num,0))).")";
+		}
+	}
+	
+	function getDetailedStats ($params) {
+		global $Language, $HTML;
+		$group_id = $params['group_id'] ;
+		
+		$result = db_query('
+			SELECT u.realname, u.user_name, sum(commits) as commits, sum(adds) as adds, sum(adds+commits) as combined
+			FROM stats_cvs_user s, users u
+			WHERE group_id=\''.$group_id.'\' AND s.user_id=u.user_id AND (commits>0 OR adds >0)
+			GROUP BY group_id, realname, user_name
+			ORDER BY combined DESC, realname;
+		');
+		
+		if (db_numrows($result) > 0) {
+			$tableHeaders = array(
+				$Language->getText('plugin_scmcvs', 'realname'),
+				$Language->getText('plugin_scmcvs', 'adds'),
+				$Language->getText('plugin_scmcvs', 'commits')
+			);
+			echo $HTML->listTableTop($tableHeaders);
+
+			$i = 0;
+			$total = array('adds' => 0, 'commits' => 0);
+
+			while($data = db_fetch_array($result)) {
+				echo '<tr '. $HTML->boxGetAltRowStyle($i) .'>';
+				echo '<td width="50%"><a href="/users/'.$data['user_name'].'/">'.$data['realname'].'</a></td>'.
+					'<td width="25%" align="right">'.$data['adds']. '</td>'.
+					'<td width="25%" align="right">'.$data['commits'].'</td></tr>';
+				$total['adds'] += $data['adds'];
+				$total['commits'] += $data['commits'];
+				$i++;
+			}
+			echo '<tr '. $HTML->boxGetAltRowStyle($i) .'>';
+			echo '<td width="50%"><strong>'.$Language->getText('plugin_scmcvs', 'total').':</strong></td>'.
+				'<td width="25%" align="right"><strong>'.$total['adds']. '</strong></td>'.
+				'<td width="25%" align="right"><strong>'.$total['commits'].'</strong></td>';
+			echo '</tr>';
+			echo $HTML->listTableBottom();
+			echo '<hr size="1" />';
+		}
+	}
+
+/*
+	function groupApproved ($params) {
+		$group_id = $params['group_id'] ;
+	
+		$project =& group_get_object($group_id);
+
+		if ($this->enabled_by_default) {
+			$group->setPluginUse("scmcvs", 1) ;
+		} else {
+			$group->setPluginUse("scmcvs", 0) ;
+		}
+	}
+*/
+}
+
+// Local Variables:
+// mode: php
+// c-file-style: "bsd"
+// End:
+
+?>

Added: trunk/gforge_base/evolvisforge/plugins.test/scmcvs/common/Snoopy.class
===================================================================
--- trunk/gforge_base/evolvisforge/plugins.test/scmcvs/common/Snoopy.class	                        (rev 0)
+++ trunk/gforge_base/evolvisforge/plugins.test/scmcvs/common/Snoopy.class	2010-02-26 00:19:01 UTC (rev 4850)
@@ -0,0 +1,1199 @@
+<?php
+
+/*************************************************
+
+Snoopy - the PHP net client
+Author: Monte Ohrt <monte at ispi.net>
+Copyright (c): 1999-2000 ispi, all rights reserved
+Version: 1.01
+
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+You may contact the author of Snoopy by e-mail at:
+monte at ispi.net
+
+Or, write to:
+Monte Ohrt
+CTO, ispi
+237 S. 70th suite 220
+Lincoln, NE 68510
+
+The latest version of Snoopy can be obtained from:
+http://snoopy.sourceforge.com
+
+*************************************************/
+
+class Snoopy
+{
+	/**** Public variables ****/
+	
+	/* user definable vars */
+
+	var $host			=	"www.php.net";		// host name we are connecting to
+	var $port			=	80;					// port we are connecting to
+	var $proxy_host		=	"";					// proxy host to use
+	var $proxy_port		=	"";					// proxy port to use
+	var $agent			=	"Snoopy v1.01";		// agent we masquerade as
+	var	$referer		=	"";					// referer info to pass
+	var $cookies		=	array();			// array of cookies to pass
+												// $cookies["username"]="joe";
+	var	$rawheaders		=	array();			// array of raw headers to send
+												// $rawheaders["Content-type"]="text/html";
+
+	var $maxredirs		=	5;					// http redirection depth maximum. 0 = disallow
+	var $lastredirectaddr	=	"";				// contains address of last redirected address
+	var	$offsiteok		=	true;				// allows redirection off-site
+	var $maxframes		=	0;					// frame content depth maximum. 0 = disallow
+	var $expandlinks	=	true;				// expand links to fully qualified URLs.
+												// this only applies to fetchlinks()
+												// or submitlinks()
+	var $passcookies	=	true;				// pass set cookies back through redirects
+												// NOTE: this currently does not respect
+												// dates, domains or paths.
+	
+	var	$user			=	"";					// user for http authentication
+	var	$pass			=	"";					// password for http authentication
+	
+	// http accept types
+	var $accept			=	"image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, */*";
+	
+	var $results		=	"";					// where the content is put
+		
+	var $error			=	"";					// error messages sent here
+	var	$response_code	=	"";					// response code returned from server
+	var	$headers		=	array();			// headers returned from server sent here
+	var	$maxlength		=	500000;				// max return data length (body)
+	var $read_timeout	=	0;					// timeout on read operations, in seconds
+												// supported only since PHP 4 Beta 4
+												// set to 0 to disallow timeouts
+	var $timed_out		=	false;				// if a read operation timed out
+	var	$status			=	0;					// http request status
+	
+	var	$curl_path		=	"/usr/bin/curl";
+												// Snoopy will use cURL for fetching
+												// SSL content if a full system path to
+												// the cURL binary is supplied here.
+												// set to false if you do not have
+												// cURL installed. See http://curl.haxx.se
+												// for details on installing cURL.
+												// Snoopy does *not* use the cURL
+												// library functions built into php,
+												// as these functions are not stable
+												// as of this Snoopy release.
+	
+	/**** Private variables ****/	
+	
+	var	$_maxlinelen	=	4096;				// max line length (headers)
+	
+	var $_httpmethod	=	"GET";				// default http request method
+	var $_httpversion	=	"HTTP/1.0";			// default http request version
+	var $_submit_method	=	"POST";				// default submit method
+	var $_submit_type	=	"application/x-www-form-urlencoded";	// default submit type
+	var $_mime_boundary	=   "";					// MIME boundary for multipart/form-data submit type
+	var $_redirectaddr	=	false;				// will be set if page fetched is a redirect
+	var $_redirectdepth	=	0;					// increments on an http redirect
+	var $_frameurls		= 	array();			// frame src urls
+	var $_framedepth	=	0;					// increments on frame depth
+	
+	var $_isproxy		=	false;				// set if using a proxy server
+	var $_fp_timeout	=	30;					// timeout for socket connection
+
+/*======================================================================*\
+	Function:	fetch
+	Purpose:	fetch the contents of a web page
+				(and possibly other protocols in the
+				future like ftp, nntp, gopher, etc.)
+	Input:		$URI	the location of the page to fetch
+	Output:		$this->results	the output text from the fetch
+\*======================================================================*/
+
+	function fetch($URI)
+	{
+	
+		//preg_match("|^([^:]+)://([^:/]+)(:[\d]+)*(.*)|",$URI,$URI_PARTS);
+		$URI_PARTS = parse_url($URI);
+		if (!empty($URI_PARTS["user"]))
+			$this->user = $URI_PARTS["user"];
+		if (!empty($URI_PARTS["pass"]))
+			$this->pass = $URI_PARTS["pass"];
+				
+		switch($URI_PARTS["scheme"])
+		{
+			case "http":
+				$this->host = $URI_PARTS["host"];
+				if(!empty($URI_PARTS["port"]))
+					$this->port = $URI_PARTS["port"];
+				if($this->_connect($fp))
+				{
+					if($this->_isproxy)
+					{
+						// using proxy, send entire URI
+						$this->_httprequest($URI,$fp,$URI,$this->_httpmethod);
+					}
+					else
+					{
+						$path = $URI_PARTS["path"].($URI_PARTS["query"] ? "?".$URI_PARTS["query"] : "");
+						// no proxy, send only the path
+						$this->_httprequest($path, $fp, $URI, $this->_httpmethod);
+					}
+					
+					$this->_disconnect($fp);
+
+					if($this->_redirectaddr)
+					{
+						/* url was redirected, check if we've hit the max depth */
+						if($this->maxredirs > $this->_redirectdepth)
+						{
+							// only follow redirect if it's on this site, or offsiteok is true
+							if(preg_match("|^http://".preg_quote($this->host)."|i",$this->_redirectaddr) || $this->offsiteok)
+							{
+								/* follow the redirect */
+								$this->_redirectdepth++;
+								$this->lastredirectaddr=$this->_redirectaddr;
+								$this->fetch($this->_redirectaddr);
+							}
+						}
+					}
+
+					if($this->_framedepth < $this->maxframes && count($this->_frameurls) > 0)
+					{
+						$frameurls = $this->_frameurls;
+						$this->_frameurls = array();
+						
+						while(list(,$frameurl) = each($frameurls))
+						{
+							if($this->_framedepth < $this->maxframes)
+							{
+								$this->fetch($frameurl);
+								$this->_framedepth++;
+							}
+							else
+								break;
+						}
+					}					
+				}
+				else
+				{
+					return false;
+				}
+				return true;					
+				break;
+			case "https":
+				if(!$this->curl_path || (!is_executable($this->curl_path)))
+					return false;
+				$this->host = $URI_PARTS["host"];
+				if(!empty($URI_PARTS["port"]))
+					$this->port = $URI_PARTS["port"];
+				if($this->_isproxy)
+				{
+					// using proxy, send entire URI
+					$this->_httpsrequest($URI,$URI,$this->_httpmethod);
+				}
+				else
+				{
+					$path = $URI_PARTS["path"].($URI_PARTS["query"] ? "?".$URI_PARTS["query"] : "");
+					// no proxy, send only the path
+					$this->_httpsrequest($path, $URI, $this->_httpmethod);
+				}
+
+				if($this->_redirectaddr)
+				{
+					/* url was redirected, check if we've hit the max depth */
+					if($this->maxredirs > $this->_redirectdepth)
+					{
+						// only follow redirect if it's on this site, or offsiteok is true
+						if(preg_match("|^http://".preg_quote($this->host)."|i",$this->_redirectaddr) || $this->offsiteok)
+						{
+							/* follow the redirect */
+							$this->_redirectdepth++;
+							$this->lastredirectaddr=$this->_redirectaddr;
+							$this->fetch($this->_redirectaddr);
+						}
+					}
+				}
+
+				if($this->_framedepth < $this->maxframes && count($this->_frameurls) > 0)
+				{
+					$frameurls = $this->_frameurls;
+					$this->_frameurls = array();
+
+					while(list(,$frameurl) = each($frameurls))
+					{
+						if($this->_framedepth < $this->maxframes)
+						{
+							$this->fetch($frameurl);
+							$this->_framedepth++;
+						}
+						else
+							break;
+					}
+				}					
+				return true;					
+				break;
+			default:
+				// not a valid protocol
+				$this->error	=	'Invalid protocol "'.$URI_PARTS["scheme"].'"\n';
+				return false;
+				break;
+		}		
+		return true;
+	}
+
+/*======================================================================*\
+	Function:	submit
+	Purpose:	submit an http form
+	Input:		$URI	the location to post the data
+				$formvars	the formvars to use.
+					format: $formvars["var"] = "val";
+	Output:		$this->results	the text output from the post
+\*======================================================================*/
+
+	function submit($URI, $formvars="", $formfiles="")
+	{
+		unset($postdata);
+		
+		$postdata = $this->_prepare_post_body($formvars, $formfiles);
+			
+		$URI_PARTS = parse_url($URI);
+		if (!empty($URI_PARTS["user"]))
+			$this->user = $URI_PARTS["user"];
+		if (!empty($URI_PARTS["pass"]))
+			$this->pass = $URI_PARTS["pass"];
+				
+		switch($URI_PARTS["scheme"])
+		{
+			case "http":
+				$this->host = $URI_PARTS["host"];
+				if(!empty($URI_PARTS["port"]))
+					$this->port = $URI_PARTS["port"];
+				if($this->_connect($fp))
+				{
+					if($this->_isproxy)
+					{
+						// using proxy, send entire URI
+						$this->_httprequest($URI,$fp,$URI,$this->_submit_method,$this->_submit_type,$postdata);
+					}
+					else
+					{
+						$path = $URI_PARTS["path"].($URI_PARTS["query"] ? "?".$URI_PARTS["query"] : "");
+						// no proxy, send only the path
+						$this->_httprequest($path, $fp, $URI, $this->_submit_method, $this->_submit_type, $postdata);
+					}
+					
+					$this->_disconnect($fp);
+
+					if($this->_redirectaddr)
+					{
+						/* url was redirected, check if we've hit the max depth */
+						if($this->maxredirs > $this->_redirectdepth)
+						{						
+							if(!preg_match("|^".$URI_PARTS["scheme"]."://|", $this->_redirectaddr))
+								$this->_redirectaddr = $this->_expandlinks($this->_redirectaddr,$URI_PARTS["scheme"]."://".$URI_PARTS["host"]);						
+							
+							// only follow redirect if it's on this site, or offsiteok is true
+							if(preg_match("|^http://".preg_quote($this->host)."|i",$this->_redirectaddr) || $this->offsiteok)
+							{
+								/* follow the redirect */
+								$this->_redirectdepth++;
+								$this->lastredirectaddr=$this->_redirectaddr;
+								$this->submit($this->_redirectaddr,$formvars, $formfiles);
+							}
+						}
+					}
+
+					if($this->_framedepth < $this->maxframes && count($this->_frameurls) > 0)
+					{
+						$frameurls = $this->_frameurls;
+						$this->_frameurls = array();
+						
+						while(list(,$frameurl) = each($frameurls))
+						{														
+							if($this->_framedepth < $this->maxframes)
+							{
+								$this->fetch($frameurl);
+								$this->_framedepth++;
+							}
+							else
+								break;
+						}
+					}					
+					
+				}
+				else
+				{
+					return false;
+				}
+				return true;					
+				break;
+			case "https":
+				if(!$this->curl_path || (!is_executable($this->curl_path)))
+					return false;
+				$this->host = $URI_PARTS["host"];
+				if(!empty($URI_PARTS["port"]))
+					$this->port = $URI_PARTS["port"];
+				if($this->_isproxy)
+				{
+					// using proxy, send entire URI
+					$this->_httpsrequest($URI, $URI, $this->_submit_method, $this->_submit_type, $postdata);
+				}
+				else
+				{
+					$path = $URI_PARTS["path"].($URI_PARTS["query"] ? "?".$URI_PARTS["query"] : "");
+					// no proxy, send only the path
+					$this->_httpsrequest($path, $URI, $this->_submit_method, $this->_submit_type, $postdata);
+				}
+
+				if($this->_redirectaddr)
+				{
+					/* url was redirected, check if we've hit the max depth */
+					if($this->maxredirs > $this->_redirectdepth)
+					{						
+						if(!preg_match("|^".$URI_PARTS["scheme"]."://|", $this->_redirectaddr))
+							$this->_redirectaddr = $this->_expandlinks($this->_redirectaddr,$URI_PARTS["scheme"]."://".$URI_PARTS["host"]);						
+
+						// only follow redirect if it's on this site, or offsiteok is true
+						if(preg_match("|^http://".preg_quote($this->host)."|i",$this->_redirectaddr) || $this->offsiteok)
+						{
+							/* follow the redirect */
+							$this->_redirectdepth++;
+							$this->lastredirectaddr=$this->_redirectaddr;
+							$this->submit($this->_redirectaddr,$formvars, $formfiles);
+						}
+					}
+				}
+
+				if($this->_framedepth < $this->maxframes && count($this->_frameurls) > 0)
+				{
+					$frameurls = $this->_frameurls;
+					$this->_frameurls = array();
+
+					while(list(,$frameurl) = each($frameurls))
+					{														
+						if($this->_framedepth < $this->maxframes)
+						{
+							$this->fetch($frameurl);
+							$this->_framedepth++;
+						}
+						else
+							break;
+					}
+				}					
+				return true;					
+				break;
+				
+			default:
+				// not a valid protocol
+				$this->error	=	'Invalid protocol "'.$URI_PARTS["scheme"].'"\n';
+				return false;
+				break;
+		}		
+		return true;
+	}
+
+/*======================================================================*\
+	Function:	fetchlinks
+	Purpose:	fetch the links from a web page
+	Input:		$URI	where you are fetching from
+	Output:		$this->results	an array of the URLs
+\*======================================================================*/
+
+	function fetchlinks($URI)
+	{
+		if ($this->fetch($URI))
+		{			
+
+			if(is_array($this->results))
+			{
+				for($x=0;$x<count($this->results);$x++)
+					$this->results[$x] = $this->_striplinks($this->results[$x]);
+			}
+			else
+				$this->results = $this->_striplinks($this->results);
+
+			if($this->expandlinks)
+				$this->results = $this->_expandlinks($this->results, $URI);
+			return true;
+		}
+		else
+			return false;
+	}
+
+/*======================================================================*\
+	Function:	fetchform
+	Purpose:	fetch the form elements from a web page
+	Input:		$URI	where you are fetching from
+	Output:		$this->results	the resulting html form
+\*======================================================================*/
+
+	function fetchform($URI)
+	{
+		
+		if ($this->fetch($URI))
+		{			
+
+			if(is_array($this->results))
+			{
+				for($x=0;$x<count($this->results);$x++)
+					$this->results[$x] = $this->_stripform($this->results[$x]);
+			}
+			else
+				$this->results = $this->_stripform($this->results);
+			
+			return true;
+		}
+		else
+			return false;
+	}
+	
+	
+/*======================================================================*\
+	Function:	fetchtext
+	Purpose:	fetch the text from a web page, stripping the links
+	Input:		$URI	where you are fetching from
+	Output:		$this->results	the text from the web page
+\*======================================================================*/
+
+	function fetchtext($URI)
+	{
+		if($this->fetch($URI))
+		{			
+			if(is_array($this->results))
+			{
+				for($x=0;$x<count($this->results);$x++)
+					$this->results[$x] = $this->_striptext($this->results[$x]);
+			}
+			else
+				$this->results = $this->_striptext($this->results);
+			return true;
+		}
+		else
+			return false;
+	}
+
+/*======================================================================*\
+	Function:	submitlinks
+	Purpose:	grab links from a form submission
+	Input:		$URI	where you are submitting from
+	Output:		$this->results	an array of the links from the post
+\*======================================================================*/
+
+	function submitlinks($URI, $formvars="", $formfiles="")
+	{
+		if($this->submit($URI,$formvars, $formfiles))
+		{			
+			if(is_array($this->results))
+			{
+				for($x=0;$x<count($this->results);$x++)
+				{
+					$this->results[$x] = $this->_striplinks($this->results[$x]);
+					if($this->expandlinks)
+						$this->results[$x] = $this->_expandlinks($this->results[$x],$URI);
+				}
+			}
+			else
+			{
+				$this->results = $this->_striplinks($this->results);
+				if($this->expandlinks)
+					$this->results = $this->_expandlinks($this->results,$URI);
+			}
+			return true;
+		}
+		else
+			return false;
+	}
+
+/*======================================================================*\
+	Function:	submittext
+	Purpose:	grab text from a form submission
+	Input:		$URI	where you are submitting from
+	Output:		$this->results	the text from the web page
+\*======================================================================*/
+
+	function submittext($URI, $formvars = "", $formfiles = "")
+	{
+		if($this->submit($URI,$formvars, $formfiles))
+		{			
+			if(is_array($this->results))
+			{
+				for($x=0;$x<count($this->results);$x++)
+				{
+					$this->results[$x] = $this->_striptext($this->results[$x]);
+					if($this->expandlinks)
+						$this->results[$x] = $this->_expandlinks($this->results[$x],$URI);
+				}
+			}
+			else
+			{
+				$this->results = $this->_striptext($this->results);
+				if($this->expandlinks)
+					$this->results = $this->_expandlinks($this->results,$URI);
+			}
+			return true;
+		}
+		else
+			return false;
+	}
+
+	
+
+/*======================================================================*\
+	Function:	set_submit_multipart
+	Purpose:	Set the form submission content type to
+				multipart/form-data
+\*======================================================================*/
+	function set_submit_multipart()
+	{
+		$this->_submit_type = "multipart/form-data";
+	}
+
+	
+/*======================================================================*\
+	Function:	set_submit_normal
+	Purpose:	Set the form submission content type to
+				application/x-www-form-urlencoded
+\*======================================================================*/
+	function set_submit_normal()
+	{
+		$this->_submit_type = "application/x-www-form-urlencoded";
+	}
+
+	
+	
+
+/*======================================================================*\
+	Private functions
+\*======================================================================*/
+	
+	
+/*======================================================================*\
+	Function:	_striplinks
+	Purpose:	strip the hyperlinks from an html document
+	Input:		$document	document to strip.
+	Output:		$match		an array of the links
+\*======================================================================*/
+
+	function _striplinks($document)
+	{	
+		preg_match_all("'<\s*a\s.*?href\s*=\s*			# find <a href=
+						([\"\'])?					# find single or double quote
+						(?(1) (.*?)\\1 | ([^\s\>]+))		# if quote found, match up to next matching
+													# quote, otherwise match up to next space
+						'isx",$document,$links);
+						
+
+		// catenate the non-empty matches from the conditional subpattern
+
+		while(list($key,$val) = each($links[2]))
+		{
+			if(!empty($val))
+				$match[] = $val;
+		}				
+		
+		while(list($key,$val) = each($links[3]))
+		{
+			if(!empty($val))
+				$match[] = $val;
+		}		
+		
+		// return the links
+		return $match;
+	}
+
+/*======================================================================*\
+	Function:	_stripform
+	Purpose:	strip the form elements from an html document
+	Input:		$document	document to strip.
+	Output:		$match		an array of the links
+\*======================================================================*/
+
+	function _stripform($document)
+	{	
+		preg_match_all("'<\/?(FORM|INPUT|SELECT|TEXTAREA|(OPTION))[^<>]*>(?(2)(.*(?=<\/?(option|select)[^<>]*>[\r\n]*)|(?=[\r\n]*))|(?=[\r\n]*))'Usi",$document,$elements);
+		
+		// catenate the matches
+		$match = implode("\r\n",$elements[0]);
+				
+		// return the links
+		return $match;
+	}
+
+	
+	
+/*======================================================================*\
+	Function:	_striptext
+	Purpose:	strip the text from an html document
+	Input:		$document	document to strip.
+	Output:		$text		the resulting text
+\*======================================================================*/
+
+	function _striptext($document)
+	{
+		
+		// I didn't use preg eval (//e) since that is only available in PHP 4.0.
+		// so, list your entities one by one here. I included some of the
+		// more common ones.
+								
+		$search = array("'<script[^>]*?>.*?</script>'si",	// strip out javascript
+						"'<[\/\!]*?[^<>]*?>'si",			// strip out html tags
+						"'([\r\n])[\s]+'",					// strip out white space
+						"'&(quot|#34|#034|#x22);'i",		// replace html entities
+						"'&(amp|#38|#038|#x26);'i",			// added hexadecimal values
+						"'&(lt|#60|#060|#x3c);'i",
+						"'&(gt|#62|#062|#x3e);'i",
+						"'&(nbsp|#160|#xa0);'i",
+						"'&(iexcl|#161);'i",
+						"'&(cent|#162);'i",
+						"'&(pound|#163);'i",
+						"'&(copy|#169);'i",
+						"'&(reg|#174);'i",
+						"'&(deg|#176);'i",
+						"'&(#39|#039|#x27);'",
+						"'&(euro|#8364);'i",				// europe
+						"'&a(uml|UML);'",					// german
+						"'&o(uml|UML);'",
+						"'&u(uml|UML);'",
+						"'&A(uml|UML);'",
+						"'&O(uml|UML);'",
+						"'&U(uml|UML);'",
+						"'&szlig;'i",
+						);
+		$replace = array(	"",
+							"",
+							"\\1",
+							"\"",
+							"&",
+							"<",
+							">",
+							" ",
+							chr(161),
+							chr(162),
+							chr(163),
+							chr(169),
+							chr(174),
+							chr(176),
+							chr(39),
+							chr(128),
+							"ä",
+							"ö",
+							"ü",
+							"Ä",
+							"Ö",
+							"Ü",
+							"ß",
+						);
+					
+		$text = preg_replace($search,$replace,$document);
+								
+		return $text;
+	}
+
+/*======================================================================*\
+	Function:	_expandlinks
+	Purpose:	expand each link into a fully qualified URL
+	Input:		$links			the links to qualify
+				$URI			the full URI to get the base from
+	Output:		$expandedLinks	the expanded links
+\*======================================================================*/
+
+	function _expandlinks($links,$URI)
+	{
+		
+		preg_match("/^[^\?]+/",$URI,$match);
+
+		$match = preg_replace("|/[^\/\.]+\.[^\/\.]+$|","",$match[0]);
+				
+		$search = array( 	"|^http://".preg_quote($this->host)."|i",
+							"|^(?!http://)(\/)?(?!mailto:)|i",
+							"|/\./|",
+							"|/[^\/]+/\.\./|"
+						);
+						
+		$replace = array(	"",
+							$match."/",
+							"/",
+							"/"
+						);			
+				
+		$expandedLinks = preg_replace($search,$replace,$links);
+
+		return $expandedLinks;
+	}
+
+/*======================================================================*\
+	Function:	_httprequest
+	Purpose:	go get the http data from the server
+	Input:		$url		the url to fetch
+				$fp			the current open file pointer
+				$URI		the full URI
+				$body		body contents to send if any (POST)
+	Output:		
+\*======================================================================*/
+	
+	function _httprequest($url,$fp,$URI,$http_method,$content_type="",$body="")
+	{
+		$cookie_headers = '';
+		if($this->passcookies && $this->_redirectaddr)
+			$this->setcookies();
+			
+		$URI_PARTS = parse_url($URI);
+		if(empty($url))
+			$url = "/";
+		$headers = $http_method." ".$url." ".$this->_httpversion."\r\n";		
+		if(!empty($this->agent))
+			$headers .= "User-Agent: ".$this->agent."\r\n";
+		if(!empty($this->host) && !isset($this->rawheaders['Host']))
+			$headers .= "Host: ".$this->host."\r\n";
+		if(!empty($this->accept))
+			$headers .= "Accept: ".$this->accept."\r\n";
+		if(!empty($this->referer))
+			$headers .= "Referer: ".$this->referer."\r\n";
+		if(!empty($this->cookies))
+		{			
+			if(!is_array($this->cookies))
+				$this->cookies = (array)$this->cookies;
+	
+			reset($this->cookies);
+			if ( count($this->cookies) > 0 ) {
+				$cookie_headers .= 'Cookie: ';
+				foreach ( $this->cookies as $cookieKey => $cookieVal ) {
+				$cookie_headers .= $cookieKey."=".urlencode($cookieVal)."; ";
+				}
+				$headers .= substr($cookie_headers,0,-2) . "\r\n";
+			} 
+		}
+		if(!empty($this->rawheaders))
+		{
+			if(!is_array($this->rawheaders))
+				$this->rawheaders = (array)$this->rawheaders;
+			while(list($headerKey,$headerVal) = each($this->rawheaders))
+				$headers .= $headerKey.": ".$headerVal."\r\n";
+		}
+		if(!empty($content_type)) {
+			$headers .= "Content-type: $content_type";
+			if ($content_type == "multipart/form-data")
+				$headers .= "; boundary=".$this->_mime_boundary;
+			$headers .= "\r\n";
+		}
+		if(!empty($body))	
+			$headers .= "Content-length: ".strlen($body)."\r\n";
+		if(!empty($this->user) || !empty($this->pass))	
+			$headers .= "Authorization: Basic ".base64_encode($this->user.":".$this->pass)."\r\n";
+
+		$headers .= "\r\n";
+		
+		// set the read timeout if needed
+		if ($this->read_timeout > 0)
+			socket_set_timeout($fp, $this->read_timeout);
+		$this->timed_out = false;
+		
+		fwrite($fp,$headers.$body,strlen($headers.$body));
+		
+		$this->_redirectaddr = false;
+		unset($this->headers);
+						
+		while($currentHeader = fgets($fp,$this->_maxlinelen))
+		{
+			if ($this->read_timeout > 0 && $this->_check_timeout($fp))
+			{
+				$this->status=-100;
+				return false;
+			}
+				
+			if($currentHeader == "\r\n")
+				break;
+						
+			// if a header begins with Location: or URI:, set the redirect
+			if(preg_match("/^(Location:|URI:)/i",$currentHeader))
+			{
+				// get URL portion of the redirect
+				preg_match("/^(Location:|URI:)[ ]+(.*)/",chop($currentHeader),$matches);
+				// look for :// in the Location header to see if hostname is included
+				if(!preg_match("|\:\/\/|",$matches[2]))
+				{
+					// no host in the path, so prepend
+					$this->_redirectaddr = $URI_PARTS["scheme"]."://".$this->host.":".$this->port;
+					// eliminate double slash
+					if(!preg_match("|^/|",$matches[2]))
+							$this->_redirectaddr .= "/".$matches[2];
+					else
+							$this->_redirectaddr .= $matches[2];
+				}
+				else
+					$this->_redirectaddr = $matches[2];
+			}
+		
+			if(preg_match("|^HTTP/|",$currentHeader))
+			{
+                if(preg_match("|^HTTP/[^\s]*\s(.*?)\s|",$currentHeader, $status))
+				{
+					$this->status= $status[1];
+                }				
+				$this->response_code = $currentHeader;
+			}
+				
+			$this->headers[] = $currentHeader;
+		}
+
+		$results = '';
+		do {
+    		$_data = fread($fp, $this->maxlength);
+    		if (strlen($_data) == 0) {
+        		break;
+    		}
+    		$results .= $_data;
+		} while(true);
+
+		if ($this->read_timeout > 0 && $this->_check_timeout($fp))
+		{
+			$this->status=-100;
+			return false;
+		}
+		
+		// check if there is a a redirect meta tag
+		
+		if(preg_match("'<meta[\s]*http-equiv[^>]*?content[\s]*=[\s]*[\"\']?\d+;[\s]+URL[\s]*=[\s]*([^\"\']*?)[\"\']?>'i",$results,$match))
+		{
+			$this->_redirectaddr = $this->_expandlinks($match[1],$URI);	
+		}
+
+		// have we hit our frame depth and is there frame src to fetch?
+		if(($this->_framedepth < $this->maxframes) && preg_match_all("'<frame\s+.*src[\s]*=[\'\"]?([^\'\"\>]+)'i",$results,$match))
+		{
+			$this->results[] = $results;
+			for($x=0; $x<count($match[1]); $x++)
+				$this->_frameurls[] = $this->_expandlinks($match[1][$x],$URI_PARTS["scheme"]."://".$this->host);
+		}
+		// have we already fetched framed content?
+		elseif(is_array($this->results))
+			$this->results[] = $results;
+		// no framed content
+		else
+			$this->results = $results;
+		
+		return true;
+	}
+
+/*======================================================================*\
+	Function:	_httpsrequest
+	Purpose:	go get the https data from the server using curl
+	Input:		$url		the url to fetch
+				$URI		the full URI
+				$body		body contents to send if any (POST)
+	Output:		
+\*======================================================================*/
+	
+	function _httpsrequest($url,$URI,$http_method,$content_type="",$body="")
+	{
+		if($this->passcookies && $this->_redirectaddr)
+			$this->setcookies();
+
+		$headers = array();		
+					
+		$URI_PARTS = parse_url($URI);
+		if(empty($url))
+			$url = "/";
+		// GET ... header not needed for curl
+		//$headers[] = $http_method." ".$url." ".$this->_httpversion;		
+		if(!empty($this->agent))
+			$headers[] = "User-Agent: ".$this->agent;
+		if(!empty($this->host))
+			$headers[] = "Host: ".$this->host;
+		if(!empty($this->accept))
+			$headers[] = "Accept: ".$this->accept;
+		if(!empty($this->referer))
+			$headers[] = "Referer: ".$this->referer;
+		if(!empty($this->cookies))
+		{			
+			if(!is_array($this->cookies))
+				$this->cookies = (array)$this->cookies;
+	
+			reset($this->cookies);
+			if ( count($this->cookies) > 0 ) {
+				$cookie_str = 'Cookie: ';
+				foreach ( $this->cookies as $cookieKey => $cookieVal ) {
+				$cookie_str .= $cookieKey."=".urlencode($cookieVal)."; ";
+				}
+				$headers[] = substr($cookie_str,0,-2);
+			}
+		}
+		if(!empty($this->rawheaders))
+		{
+			if(!is_array($this->rawheaders))
+				$this->rawheaders = (array)$this->rawheaders;
+			while(list($headerKey,$headerVal) = each($this->rawheaders))
+				$headers[] = $headerKey.": ".$headerVal;
+		}
+		if(!empty($content_type)) {
+			if ($content_type == "multipart/form-data")
+				$headers[] = "Content-type: $content_type; boundary=".$this->_mime_boundary;
+			else
+				$headers[] = "Content-type: $content_type";
+		}
+		if(!empty($body))	
+			$headers[] = "Content-length: ".strlen($body);
+		if(!empty($this->user) || !empty($this->pass))	
+			$headers[] = "Authorization: BASIC ".base64_encode($this->user.":".$this->pass);
+			
+		for($curr_header = 0; $curr_header < count($headers); $curr_header++)
+			$cmdline_params .= " -H \"".$headers[$curr_header]."\"";
+		
+		if(!empty($body))
+			$cmdline_params .= " -d \"$body\"";
+		
+		if($this->read_timeout > 0)
+			$cmdline_params .= " -m ".$this->read_timeout;
+		
+		$headerfile = uniqid(time());
+
+		@exec($this->curl_path." --insecure -s -D \"/tmp/$headerfile\"".$cmdline_params." ".$URI,$results,$return);
+		
+		if($return)
+		{
+			$this->error = "Error: cURL could not retrieve the document, error $return.";
+			return false;
+		}
+			
+			
+		$results = implode("\r\n",$results);
+		
+		$result_headers = file("/tmp/$headerfile");
+						
+		$this->_redirectaddr = false;
+		unset($this->headers);
+						
+		for($currentHeader = 0; $currentHeader < count($result_headers); $currentHeader++)
+		{
+			
+			// if a header begins with Location: or URI:, set the redirect
+			if(preg_match("/^(Location: |URI: )/i",$result_headers[$currentHeader]))
+			{
+				// get URL portion of the redirect
+				preg_match("/^(Location: |URI:)\s+(.*)/",chop($result_headers[$currentHeader]),$matches);
+				// look for :// in the Location header to see if hostname is included
+				if(!preg_match("|\:\/\/|",$matches[2]))
+				{
+					// no host in the path, so prepend
+					$this->_redirectaddr = $URI_PARTS["scheme"]."://".$this->host.":".$this->port;
+					// eliminate double slash
+					if(!preg_match("|^/|",$matches[2]))
+							$this->_redirectaddr .= "/".$matches[2];
+					else
+							$this->_redirectaddr .= $matches[2];
+				}
+				else
+					$this->_redirectaddr = $matches[2];
+			}
+		
+			if(preg_match("|^HTTP/|",$result_headers[$currentHeader]))
+				$this->response_code = $result_headers[$currentHeader];
+
+			$this->headers[] = $result_headers[$currentHeader];
+		}
+
+		// check if there is a a redirect meta tag
+		
+		if(preg_match("'<meta[\s]*http-equiv[^>]*?content[\s]*=[\s]*[\"\']?\d+;[\s]+URL[\s]*=[\s]*([^\"\']*?)[\"\']?>'i",$results,$match))
+		{
+			$this->_redirectaddr = $this->_expandlinks($match[1],$URI);	
+		}
+
+		// have we hit our frame depth and is there frame src to fetch?
+		if(($this->_framedepth < $this->maxframes) && preg_match_all("'<frame\s+.*src[\s]*=[\'\"]?([^\'\"\>]+)'i",$results,$match))
+		{
+			$this->results[] = $results;
+			for($x=0; $x<count($match[1]); $x++)
+				$this->_frameurls[] = $this->_expandlinks($match[1][$x],$URI_PARTS["scheme"]."://".$this->host);
+		}
+		// have we already fetched framed content?
+		elseif(is_array($this->results))
+			$this->results[] = $results;
+		// no framed content
+		else
+			$this->results = $results;
+
+		unlink("/tmp/$headerfile");
+		
+		return true;
+	}
+
+/*======================================================================*\
+	Function:	setcookies()
+	Purpose:	set cookies for a redirection
+\*======================================================================*/
+	
+	function setcookies()
+	{
+		for($x=0; $x<count($this->headers); $x++)
+		{
+		if(preg_match('/^set-cookie:[\s]+([^=]+)=([^;]+)/i', $this->headers[$x],$match))
+			$this->cookies[$match[1]] = $match[2];
+		}
+	}
+
+	
+/*======================================================================*\
+	Function:	_check_timeout
+	Purpose:	checks whether timeout has occurred
+	Input:		$fp	file pointer
+\*======================================================================*/
+
+	function _check_timeout($fp)
+	{
+		if ($this->read_timeout > 0) {
+			$fp_status = socket_get_status($fp);
+			if ($fp_status["timed_out"]) {
+				$this->timed_out = true;
+				return true;
+			}
+		}
+		return false;
+	}
+
+/*======================================================================*\
+	Function:	_connect
+	Purpose:	make a socket connection
+	Input:		$fp	file pointer
+\*======================================================================*/
+	
+	function _connect(&$fp)
+	{
+		if(!empty($this->proxy_host) && !empty($this->proxy_port))
+			{
+				$this->_isproxy = true;
+				$host = $this->proxy_host;
+				$port = $this->proxy_port;
+			}
+		else
+		{
+			$host = $this->host;
+			$port = $this->port;
+		}
+	
+		$this->status = 0;
+		
+		if($fp = fsockopen(
+					$host,
+					$port,
+					$errno,
+					$errstr,
+					$this->_fp_timeout
+					))
+		{
+			// socket connection succeeded
+
+			return true;
+		}
+		else
+		{
+			// socket connection failed
+			$this->status = $errno;
+			switch($errno)
+			{
+				case -3:
+					$this->error="socket creation failed (-3)";
+				case -4:
+					$this->error="dns lookup failure (-4)";
+				case -5:
+					$this->error="connection refused or timed out (-5)";
+				default:
+					$this->error="connection failed (".$errno.")";
+			}
+			return false;
+		}
+	}
+/*======================================================================*\
+	Function:	_disconnect
+	Purpose:	disconnect a socket connection
+	Input:		$fp	file pointer
+\*======================================================================*/
+	
+	function _disconnect($fp)
+	{
+		return(fclose($fp));
+	}
+
+	
+/*======================================================================*\
+	Function:	_prepare_post_body
+	Purpose:	Prepare post body according to encoding type
+	Input:		$formvars  - form variables
+				$formfiles - form upload files
+	Output:		post body
+\*======================================================================*/
+	
+	function _prepare_post_body($formvars, $formfiles)
+	{
+		settype($formvars, "array");
+		settype($formfiles, "array");
+
+		if (count($formvars) == 0 && count($formfiles) == 0)
+			return;
+		
+		switch ($this->_submit_type) {
+			case "application/x-www-form-urlencoded":
+				reset($formvars);
+				while(list($key,$val) = each($formvars)) {
+					if (is_array($val) || is_object($val)) {
+						while (list($cur_key, $cur_val) = each($val)) {
+							$postdata .= urlencode($key)."[]=".urlencode($cur_val)."&";
+						}
+					} else
+						$postdata .= urlencode($key)."=".urlencode($val)."&";
+				}
+				break;
+
+			case "multipart/form-data":
+				$this->_mime_boundary = "Snoopy".md5(uniqid(microtime()));
+				
+				reset($formvars);
+				while(list($key,$val) = each($formvars)) {
+					if (is_array($val) || is_object($val)) {
+						while (list($cur_key, $cur_val) = each($val)) {
+							$postdata .= "--".$this->_mime_boundary."\r\n";
+							$postdata .= "Content-Disposition: form-data; name=\"$key\[\]\"\r\n\r\n";
+							$postdata .= "$cur_val\r\n";
+						}
+					} else {
+						$postdata .= "--".$this->_mime_boundary."\r\n";
+						$postdata .= "Content-Disposition: form-data; name=\"$key\"\r\n\r\n";
+						$postdata .= "$val\r\n";
+					}
+				}
+				
+				reset($formfiles);
+				while (list($field_name, $file_names) = each($formfiles)) {
+					settype($file_names, "array");
+					while (list(, $file_name) = each($file_names)) {
+						if (!is_readable($file_name)) continue;
+
+						$fp = fopen($file_name, "r");
+						$file_content = fread($fp, filesize($file_name));
+						fclose($fp);
+						$base_name = basename($file_name);
+
+						$postdata .= "--".$this->_mime_boundary."\r\n";
+						$postdata .= "Content-Disposition: form-data; name=\"$field_name\"; filename=\"$base_name\"\r\n\r\n";
+						$postdata .= "$file_content\r\n";
+					}
+				}
+				$postdata .= "--".$this->_mime_boundary."--\r\n";
+				break;
+		}
+
+		return $postdata;
+	}
+}
+
+?>

Added: trunk/gforge_base/evolvisforge/plugins.test/scmcvs/common/languages/Base.tab
===================================================================
--- trunk/gforge_base/evolvisforge/plugins.test/scmcvs/common/languages/Base.tab	                        (rev 0)
+++ trunk/gforge_base/evolvisforge/plugins.test/scmcvs/common/languages/Base.tab	2010-02-26 00:19:01 UTC (rev 4850)
@@ -0,0 +1,26 @@
+plugin_scmcvs	anoncvs	<p><b>Anonymous CVS Access</b></p><p>This project's CVS repository can be checked out through anonymous (pserver) CVS with the following instruction set. The module you wish to check out must be specified as the <i>modulename</i>. When prompted for a password for <i>anonymous</i>, simply press the Enter key.</p>
+plugin_scmcvs	anoncvsup	Updates from within the module's directory do not need the -d parameter.
+plugin_scmcvs	browseit	Browse CVS Repository
+plugin_scmcvs	browsetree	<b>Browse the CVS Tree</b><p>Browsing the CVS tree gives you a great view into the current status of this project's code. You may also view the complete histories of any file in the repository.</p>
+plugin_scmcvs	cvs_repository	CVS Repository
+plugin_scmcvs	devcvs	<p><b>Developer CVS Access via SSH</b></p><p>Only project developers can access the CVS tree via this method. SSH must be installed on your client machine. Substitute <i>modulename</i> and <i>developername</i> with the proper values. Enter your site password when prompted.</p>
+plugin_scmcvs	developername	developername
+plugin_scmcvs	error_only_projects_can_use_cvs	Error, Only Projects Can Use CVS
+plugin_scmcvs	error_this_project_has_turned_off	Error This Project Has Turned Off CVS
+plugin_scmcvs	history	Repository History
+plugin_scmcvs	modulename	modulename
+plugin_scmcvs	nohistory	This project has no CVS history.
+plugin_scmcvs	section	Project: $1
+plugin_scmcvs	title	SCM
+plugin_scmcvs	admin	Administration
+plugin_scmcvs	download_snapshot	Download The Nightly CVS Tree Snapshot
+plugin_scmcvs	enable_cvs	Use CVS
+plugin_scmcvs	enable_anonymous_cvs	Enable Anonymous Access
+plugin_scmcvs	enable_pserver	Enable pserver
+plugin_scmcvs	server	Server:
+plugin_scmcvs	cvs_commits	<strong>$1</strong> commits, <strong>$2</strong> adds
+plugin_scmcvs	adds	Adds
+plugin_scmcvs	commits	Commits
+plugin_scmcvs	realname	Name
+plugin_scmcvs	total	Total
+plugin_scmcvs	developername	developername

Added: trunk/gforge_base/evolvisforge/plugins.test/scmcvs/common/languages/Basque.tab
===================================================================
--- trunk/gforge_base/evolvisforge/plugins.test/scmcvs/common/languages/Basque.tab	                        (rev 0)
+++ trunk/gforge_base/evolvisforge/plugins.test/scmcvs/common/languages/Basque.tab	2010-02-26 00:19:01 UTC (rev 4850)
@@ -0,0 +1,15 @@
+plugin_scmcvs	anoncvs	<P><B>CVS-z atzipen anonimoa</B> <P>Proiektu honen CVS errepositorioa lortzeko (<I>check out</I>) CVS zerbitzari anonimo baten bitartez egiten da (pserver) hurrengo argibideak jarraitzen. Lortu nahi duzun modulua <I>modulename</I> bezela zehaztua egon behar du. <I>anonymous</I> pasahitzarengatik galdetzen dizunean Enter tekla sakatu.
+plugin_scmcvs	anoncvsup	Moduluaren direktorioko eguneratzeak ez dute -d parametroa behar.
+plugin_scmcvs	browseit	CVS errepositoriotik nabigatu
+plugin_scmcvs	browsetree	<B>CVS zuhaitzetik nabigatu</B> <P>CVS zuhatzetik nabigatuz proiektu honen kodearen egoera ikusi ahal dezakezu. Fitxero bakoitzaren historia osoa ikusi beharko zenuke repositorioan.</P>
+plugin_scmcvs	cvs_repository	CVS errepositorioa
+plugin_scmcvs	devcvs	<P><B>CVS-ra atzipena lankideei SSH bidez</B></P><P>Sistema hau erabiliaz bakarrik atzi dezakete proiektu baten lankideek CVS zuhaitzera. Zure bezero makinan SSH instalatua izan behar duzu. Ordezkatzen da <I>modulename</I> y <I>developername</I> balio egokiekin. Gune honen pasahitza sartu eskatzen zaizunean.</P>
+plugin_scmcvs	developer_commits_adds	Garatzailea (30 egun/Commits) (30 egun/Adds)
+plugin_scmcvs	developername	Lankidea
+plugin_scmcvs	error_only_projects_can_use_cvs	Akatsa, proiektuek bakarrik erabili dezakete CVS-a
+plugin_scmcvs	error_this_project_has_turned_off	Akatsa, proiektu honek desaktibatua du CVS-a
+plugin_scmcvs	history	Errepositorioaren historia
+plugin_scmcvs	modulename	Modulu izena
+plugin_scmcvs	nohistory	Proiektu honek ez du CVS historia
+plugin_scmcvs	section	Proiektua: $1
+plugin_scmcvs	title	CVS

Added: trunk/gforge_base/evolvisforge/plugins.test/scmcvs/common/languages/Chinese.tab
===================================================================
--- trunk/gforge_base/evolvisforge/plugins.test/scmcvs/common/languages/Chinese.tab	                        (rev 0)
+++ trunk/gforge_base/evolvisforge/plugins.test/scmcvs/common/languages/Chinese.tab	2010-02-26 00:19:01 UTC (rev 4850)
@@ -0,0 +1,36 @@
+#/**
+#  * Traditional Chinese message catalog for plugin scmcvs
+#  *
+#  * GForge
+#  * Copyright 1999-2001 (c) VA Linux Systems
+#  * Copyright 2002-2004 (c) GForge Team
+#  * http://gforge.org
+#  *
+#  * @version   $Id$
+#  * @author Jimou, Lee
+#  *
+#  */
+#
+#  2005/01/21 Jimou, Lee   lijimou at pchome.com.tw
+#
+plugin_scmcvs	anoncvs	<p><b>匿名者 CVS 存取</b></p><p>這專案的CVS repository可以利用下列指令集透過<i>anonymous</i>存取 (pserver) CVS。您希望check out的module,您必須指定<i>modulename</i>。當出現密碼輸入提示時,只需要按Enter鍵。</p>
+plugin_scmcvs	anoncvsup	從module的目錄update不需要 -d 參數。
+plugin_scmcvs	browseit	瀏覽 CVS Repository
+plugin_scmcvs	browsetree	<b>瀏覽 CVS Tree</b><p>瀏覽 CVS tree 給您專案程式碼目前狀態的宏觀視野,同時您也可以檢視專案中任何程式碼的完整存取記錄。</p>
+plugin_scmcvs	cvs_repository	CVS Repository
+plugin_scmcvs	devcvs	<p><b>開發人員 CVS 存取透過SSH</b></p><p>只有專案開發人員可以經由這個方式存取CVS tree,SSH2必須安裝在您的個人電腦,替換<i>modulename</i>與<i>username</i>以適當的值,當出現密碼輸入提示時輸入您的密碼。</p>
+plugin_scmcvs	developername	developername
+plugin_scmcvs	error_only_projects_can_use_cvs	錯誤,只有專案可以使用CVS
+plugin_scmcvs	error_this_project_has_turned_off	錯誤,這個專案已經關閉CVS
+plugin_scmcvs	history	Repository 存取記錄
+plugin_scmcvs	modulename	modulename
+plugin_scmcvs	nohistory	這個專案沒有 CVS 存取記錄。
+plugin_scmcvs	section	專案:$1
+plugin_scmcvs	title	SCM
+plugin_scmcvs	admin	管理
+plugin_scmcvs	download_snapshot	下載 Nightly CVS Tree Snapshot
+plugin_scmcvs	enable_cvs	使用 CVS
+plugin_scmcvs	enable_anonymous_cvs	啟用匿名者存取
+plugin_scmcvs	enable_pserver	啟用 pserver
+plugin_scmcvs	server	伺服器:
+plugin_scmcvs	cvs_commits	<strong>$1</strong> 提交,<strong>$2</strong> 新增

Added: trunk/gforge_base/evolvisforge/plugins.test/scmcvs/common/languages/Dutch.tab
===================================================================
--- trunk/gforge_base/evolvisforge/plugins.test/scmcvs/common/languages/Dutch.tab	                        (rev 0)
+++ trunk/gforge_base/evolvisforge/plugins.test/scmcvs/common/languages/Dutch.tab	2010-02-26 00:19:01 UTC (rev 4850)
@@ -0,0 +1,15 @@
+#plugin_scmcvs	anoncvs	<P><B>Anonymous CVS Access</B></P><P>This project's CVS repository can be checked out through anonymous (pserver) CVS with the following instruction set. The module you wish to check out must be specified as the <I>modulename</I>. When prompted for a password for <I>anonymous</I>, simply press the Enter key.</P>
+#plugin_scmcvs	anoncvsup	Updates from within the module's directory do not need the -d parameter.
+#plugin_scmcvs	browseit	Browse CVS Repository
+#plugin_scmcvs	browsetree	<B>Browse the CVS Tree</B><P>Browsing the CVS tree gives you a great view into the current status of this project's code. You may also view the complete histories of any file in the repository.</P>
+plugin_scmcvs	cvs_repository	CVS Repository
+#plugin_scmcvs	devcvs	<P><B>Developer CVS Access via SSH</B></P><P>Only project developers can access the CVS tree via this method. SSH must be installed on your client machine. Substitute <I>modulename</I> and <I>developername</I> with the proper values. Enter your site password when prompted.</P>
+#plugin_scmcvs	developer_commits_adds	Developer (30 day/Commits) (30 day/Adds)
+plugin_scmcvs	developername	ontwikkelaarnaam
+#plugin_scmcvs	error_only_projects_can_use_cvs	Error, Only Projects Can Use CVS
+#plugin_scmcvs	error_this_project_has_turned_off	Error This Project Has Turned Off CVS
+plugin_scmcvs	history	Repository Historie
+plugin_scmcvs	modulename	modulenaam
+plugin_scmcvs	nohistory	Dit project heeft geen CVS historie.
+plugin_scmcvs	section		Project: $1
+plugin_scmcvs	title		CVS

Added: trunk/gforge_base/evolvisforge/plugins.test/scmcvs/common/languages/French.tab
===================================================================
--- trunk/gforge_base/evolvisforge/plugins.test/scmcvs/common/languages/French.tab	                        (rev 0)
+++ trunk/gforge_base/evolvisforge/plugins.test/scmcvs/common/languages/French.tab	2010-02-26 00:19:01 UTC (rev 4850)
@@ -0,0 +1,25 @@
+plugin_scmcvs	anoncvs	<p><b>Accès CVS anonyme</b></p><p>Ce dépôt CVS peut-être récupéré (check out) anonymement (avec la méthode pserver) à l'aide des instructions suivantes. Le module que vous voulez récupérer doit être spécifié comme <i>modulename</i>. Lorsqu'on vous demande un mot de passe pour <i>anonymous</i>, tapez simplement 'Entrée'.</p>
+plugin_scmcvs	anoncvsup	Les mises à jour (update) ne nécessite pas l'utilisation du paramètre -d quand on se trouve à l'intérieur du répertoire du module.
+plugin_scmcvs	browseit	Parcourir le dépôt CVS
+plugin_scmcvs	browsetree	<b>Parcourir l'arbre CVS</b><p>Parcourir l'arbre CVS vous donne une vue d'ensemble du code de ce projet. Vous pouvez également voir l'historique complet de chaque fichier du dépôt.</p>
+plugin_scmcvs	cvs_repository	dépôt CVS
+plugin_scmcvs	devcvs	<p><b>Accès CVS pour développeur via SSH</b></p><p>Seuls les développeurs d'un projet peuvent accéder à l'arbre CVS par cette méthode. SSH doit être installé sur votre machine cliente. Remplacez <i>modulename</i> et <i>developername</i> par les valeurs appropriées. Fournissez votre mot de passe du site lorsqu'on vous le demande.</p>
+plugin_scmcvs	developername	développeur
+plugin_scmcvs	error_only_projects_can_use_cvs	Erreur : seuls les projets peuvent utiliser CVS.
+plugin_scmcvs	error_this_project_has_turned_off	Erreur : ce projet a désactivé son CVS.
+plugin_scmcvs	history	Historique du dépôt
+plugin_scmcvs	modulename	module
+plugin_scmcvs	nohistory	Ce projet n'a pas d'historique CVS
+plugin_scmcvs	section	Projet : $1
+plugin_scmcvs	title	Sources
+plugin_scmcvs	admin	Administration
+plugin_scmcvs	download_snapshot	Télécharger le snapshot nocturne de l'arbre CVS
+plugin_scmcvs	enable_cvs	Utiliser CVS
+plugin_scmcvs	enable_anonymous_cvs	Activer l'accès anonyme
+plugin_scmcvs	enable_pserver	Activer l'accès pserver
+plugin_scmcvs	server	Serveur :
+plugin_scmcvs	cvs_commits	<strong>$1</strong> commits, <strong>$2</strong> ajouts
+plugin_scmcvs	adds	Ajouts
+plugin_scmcvs	commits	Commits
+plugin_scmcvs	realname	Nom
+plugin_scmcvs	total	Total&nbsp;

Added: trunk/gforge_base/evolvisforge/plugins.test/scmcvs/common/languages/German.tab
===================================================================
--- trunk/gforge_base/evolvisforge/plugins.test/scmcvs/common/languages/German.tab	                        (rev 0)
+++ trunk/gforge_base/evolvisforge/plugins.test/scmcvs/common/languages/German.tab	2010-02-26 00:19:01 UTC (rev 4850)
@@ -0,0 +1,4 @@
+plugin_scmcvs	browseit	Durchsuche CVS Repository
+plugin_scmcvs	developername	Entwicklername
+plugin_scmcvs	modulename	Modulname
+plugin_scmcvs	nohistory	Für dieses Projekt existiert keine CVS Geschichte.

Added: trunk/gforge_base/evolvisforge/plugins.test/scmcvs/common/languages/Italian.tab
===================================================================
--- trunk/gforge_base/evolvisforge/plugins.test/scmcvs/common/languages/Italian.tab	                        (rev 0)
+++ trunk/gforge_base/evolvisforge/plugins.test/scmcvs/common/languages/Italian.tab	2010-02-26 00:19:01 UTC (rev 4850)
@@ -0,0 +1,15 @@
+plugin_scmcvs	anoncvs	<P><B>Accesso anonimo a CVS </B><P>Il repository CVS di questo progetto può essere estratto tramite il metodo pserver seguendo le istruzioni qui sotto. Il modulo che desideri estrarre deve essere inserito al posto di <I>nomemodulo</I>. Quando viene richiesta una password per l'utente <I>anonymous</I>, premere Invio.</P>
+plugin_scmcvs	anoncvsup	Non è necessario utilizzare il parametro -d quando si fanno gli update da una sottodirectory.
+plugin_scmcvs	browseit	Visualizza repository CVS
+plugin_scmcvs	browsetree	<B>Visualizza il repository CVS</B><P>Visualizzare il repository CVS da' la possibilità di vedere lo stato attuale del codice sviluppato. È possibile visualizzare l'intera storia di ogni singolo file.</P>
+plugin_scmcvs	cvs_repository	Repository CVS
+plugin_scmcvs	devcvs	<P><B>Accesso SSH al CVS</B></P><P>Solo gli sviluppatori del progetto possono accedere al repository CVS tramite SSH. SSH deve essere installato sulla macchina locale. Sostituire <I>nomemodulo</I> e <I>sviluppatore</I> con i nomi appropriati. Quando viene richiesta la password, inserire la propria password di accesso.</P>
+plugin_scmcvs	developer_commits_adds	Sviluppatore (30 giorni/commit) (30 giorni/aggiunte)
+plugin_scmcvs	developername	sviluppatore
+plugin_scmcvs	error_only_projects_can_use_cvs	Errore, solo i progetti possono utilizzare CVS
+plugin_scmcvs	error_this_project_has_turned_off	Errore, questo progetto ha disabilitato il CVS
+plugin_scmcvs	history	Storia del repository CVS
+plugin_scmcvs	modulename	nomemodulo
+plugin_scmcvs	nohistory	Questo progetto non dispone dello storico del CVS.
+plugin_scmcvs	section	Progetto: $1
+plugin_scmcvs	title	CVS

Added: trunk/gforge_base/evolvisforge/plugins.test/scmcvs/common/languages/Korean.tab
===================================================================
--- trunk/gforge_base/evolvisforge/plugins.test/scmcvs/common/languages/Korean.tab	                        (rev 0)
+++ trunk/gforge_base/evolvisforge/plugins.test/scmcvs/common/languages/Korean.tab	2010-02-26 00:19:01 UTC (rev 4850)
@@ -0,0 +1,15 @@
+plugin_scmcvs	anoncvs	<p><b>익명 CVS 권한</b></p><p>이 프로젝트의 CVS 저장소는 다음과 같은 방법을 통해 익명(pserver)으로 체크아웃하실 수 있습니다. <i>modulename</i>에 체크아웃하고자 하는 모듈 이름을 정확히 명시하셔야 합니다. <i>anonymous</i>에 대해서 비밀번호를 입력하는 부분이 나오면 그냥 엔터키를 누르시면 됩니다.</p>
+plugin_scmcvs	anoncvsup	모듈 디렉토리 안에서 업데이트를 받아보실 경우에는 -d 인자가 필요 없습니다.
+plugin_scmcvs	browseit	CVS 저장소 둘러보기
+plugin_scmcvs	browsetree	<b>CVS 저장소 둘러보기</b><p>CVS 저장소를 둘러보시면 현재 프로젝트가 어떻게 진행되고 있는지 쉽게 살펴보실 수 있습니다. 그리고 저장소 안에서 어떤 특정 파일에 대한 전체 내역도 아울러 보실 수 있습니다.</p>
+plugin_scmcvs	cvs_repository	CVS 저장소
+plugin_scmcvs	devcvs	<p><b>SSH를 통한 개발자의 CVS 접근</b></p><p>프로젝트에 개발자로 등록되어 있는 사람만이 이 방법을 사용하실 수 있습니다. 클라이언트 측에 SSH이 설치되어 있어야 합니다. <i>modulename</i>과 <i>developername</i>을 적절히 바꾸어서 넣어 주시면 됩니다. 비밀번호는 자기 자신의 비밀번호를 입력하세요.</p>
+plugin_scmcvs	developer_commits_adds	개발자 (30 일/Commits) (30 일/Adds)
+plugin_scmcvs	developername	개발자이름
+plugin_scmcvs	error_only_projects_can_use_cvs	오류. CVS는 프로젝트에서만 사용할 수 있습니다.
+plugin_scmcvs	error_this_project_has_turned_off	오류. 이 프로젝트는 CVS기능을 사용하지 않도록 설정되어 있습니다.
+plugin_scmcvs	history	저장소 히스토리
+plugin_scmcvs	modulename	모듈명
+plugin_scmcvs	nohistory	이 프로젝트는 CVS 히스토리가 없습니다.
+plugin_scmcvs	section	프로젝트: $1
+plugin_scmcvs	title	CVS

Added: trunk/gforge_base/evolvisforge/plugins.test/scmcvs/common/languages/PortugueseBrazilian.tab
===================================================================
--- trunk/gforge_base/evolvisforge/plugins.test/scmcvs/common/languages/PortugueseBrazilian.tab	                        (rev 0)
+++ trunk/gforge_base/evolvisforge/plugins.test/scmcvs/common/languages/PortugueseBrazilian.tab	2010-02-26 00:19:01 UTC (rev 4850)
@@ -0,0 +1,5 @@
+plugin_scmcvs	cvs_repository	Repositório CVS
+plugin_scmcvs	error_only_projects_can_use_cvs	Erro, Apenas Projetos Podem Usar CVS
+plugin_scmcvs	error_this_project_has_turned_off	Erro, Este Projeto Desabilitou o CVS
+plugin_scmcvs	section	Projeto: $1
+plugin_scmcvs	title	CVS

Added: trunk/gforge_base/evolvisforge/plugins.test/scmcvs/common/languages/Spanish.tab
===================================================================
--- trunk/gforge_base/evolvisforge/plugins.test/scmcvs/common/languages/Spanish.tab	                        (rev 0)
+++ trunk/gforge_base/evolvisforge/plugins.test/scmcvs/common/languages/Spanish.tab	2010-02-26 00:19:01 UTC (rev 4850)
@@ -0,0 +1,16 @@
+plugin_scmcvs	admin	Administración
+plugin_scmcvs	anoncvs	<P><B>Acceso Anónimo por CVS</B></P><P>El repositorio CVS de este proyecto puede obtenerse (<I>check out</I>) a través de un servidor anónimo CVS (pserver) con las siguientes instrucciones. El módulo que quieres obtener debe ser especificado como el <I>modulename</I>. Cuando te pregunte por una password para <I>anonymous</I>, simplemente pulsa la tecla Enter.</P>
+plugin_scmcvs	anoncvsup	Actualizaciones dentro del directorio del módulo no necesitan el parámetro -d.
+plugin_scmcvs	browseit	Navegue por el Repositorio CVS
+plugin_scmcvs	browsetree	<B>Navega por el árbol CVS</B><P>Navegando por el árbol de CVS te proporcionará una gran visión de la situación actual del código de este proyecto. Deberías ver también el histórico completo de cada fichero en el repositorio.</P>
+plugin_scmcvs	cvs_repository	Repositorio CVS
+plugin_scmcvs	devcvs	<P><B>Acceso a CVS por colaboradores vía SSH</B></P><P>Sólo los colaboradores de un proyecto pueden acceder al árbol CVS por este método. Debe de tener instalado SSH en su máquina cliente. Substituye <I>modulename</I> y <I>developername</I> con los valores adecuados. Introduce su password de este sitio cuando se le solicite.</P>
+plugin_scmcvs	developer_commits_adds	Desarrollador (30 días/Commits) (30 días/Adds)
+plugin_scmcvs	developername	colaborador
+plugin_scmcvs	error_only_projects_can_use_cvs	Error, solo los proyectos pueden usar el CVS
+plugin_scmcvs	error_this_project_has_turned_off	Error Este proyecto tiene desactivado el CVS
+plugin_scmcvs	history	Histórico del Repositorio
+plugin_scmcvs	modulename	modulename
+plugin_scmcvs	nohistory	Este proyecto no tiene historial CVS
+plugin_scmcvs	section	Proyecto: $1
+plugin_scmcvs	title	CVS

Added: trunk/gforge_base/evolvisforge/plugins.test/scmcvs/common/languages/Swedish.tab
===================================================================
--- trunk/gforge_base/evolvisforge/plugins.test/scmcvs/common/languages/Swedish.tab	                        (rev 0)
+++ trunk/gforge_base/evolvisforge/plugins.test/scmcvs/common/languages/Swedish.tab	2010-02-26 00:19:01 UTC (rev 4850)
@@ -0,0 +1,15 @@
+plugin_scmcvs	anoncvs	<P><B>Anonym CVS åtkomst</B></P><P>Detta projekts CVS-lager kan hämtas med anonym (pserver) CVS med följande instruktions set. Modul som du you vill hämta måste specifieras som <I>modulnamn</I>. När du tillfrågas om lösenord för <I>anonym</I>, tryck bara på returtangenten.</P>
+plugin_scmcvs	anoncvsup	Uppdateringar innifrån modulens katalog behöver inte -d parametern.
+plugin_scmcvs	browseit	Bläddra i CVS-lagret
+plugin_scmcvs	browsetree	<B>Bläddra i CVS-trädet</B><P>Bläddring i CVS-trädet ger dig en bra insyn i statusen för projektets kod. Du kan också se hela historiken för valfri fil lagret.</P>
+plugin_scmcvs	cvs_repository	CVS Lager
+plugin_scmcvs	devcvs	<P><B>Ge utvecklare CVS åtkomst via SSH</B></P><P>Endast projekt utvecklare kan komma åt CVS trädet via denna metod. SSH måste vara installerad på din klientmaskin. Ersätt <I>modulnamn</I> och <I>utvecklarnamn</I> med rätt värden. Ange webbplatslösenord vid anmodan.</P>
+plugin_scmcvs	developer_commits_adds	Utvecklare (30 dagar/Inlämningar) (30 dagar/Tillägg)
+plugin_scmcvs	developername	utvecklarnamn
+plugin_scmcvs	error_only_projects_can_use_cvs	Fel, endast projekt kan använda CVS
+plugin_scmcvs	error_this_project_has_turned_off	Fel, detta projekt har stängt av CVS
+plugin_scmcvs	history	Lagerhistorik
+plugin_scmcvs	modulename	modulnamn
+plugin_scmcvs	nohistory	Detta projekt har ingen CVS-historik.
+plugin_scmcvs	section	Projekt: $1
+plugin_scmcvs	title	CVS

Added: trunk/gforge_base/evolvisforge/plugins.test/scmcvs/common/scmcvs-init.php
===================================================================
--- trunk/gforge_base/evolvisforge/plugins.test/scmcvs/common/scmcvs-init.php	                        (rev 0)
+++ trunk/gforge_base/evolvisforge/plugins.test/scmcvs/common/scmcvs-init.php	2010-02-26 00:19:01 UTC (rev 4850)
@@ -0,0 +1,37 @@
+<?php
+/**
+ *	CVS plugin initialisation file
+ *
+ * This file is copyright (c) Roland Mas <lolando at debian.org>, 2004
+ *
+ * $Id$
+ *
+ * This file is part of GForge.
+ *
+ * GForge 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.
+ *
+ * GForge is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with GForge; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ */
+
+require_once ($GLOBALS['sys_plugins_path'].'/scmcvs/common/CVSPlugin.class') ;
+
+$CVSPluginObject = new CVSPlugin ;
+
+register_plugin ($CVSPluginObject) ;
+
+// Local Variables:
+// mode: php
+// c-file-style: "bsd"
+// End:
+
+?>

Added: trunk/gforge_base/evolvisforge/plugins.test/scmcvs/cronjobs/crontab.in
===================================================================
--- trunk/gforge_base/evolvisforge/plugins.test/scmcvs/cronjobs/crontab.in	                        (rev 0)
+++ trunk/gforge_base/evolvisforge/plugins.test/scmcvs/cronjobs/crontab.in	2010-02-26 00:19:01 UTC (rev 4850)
@@ -0,0 +1,33 @@
+#
+#       Create the /etc/* files
+#
+10 * * * * $PHP $GFORGE/plugins/scmcvs/cronjobs/usergroup.php
+#
+#       Create the user and group home directories
+#
+25 * * * * $PHP $GFORGE/plugins/scmcvs/cronjobs/homedirs.php
+#
+#       Upload the SSH key files
+#
+15 * * * * $PHP $GFORGE/plugins/scmcvs/cronjobs/ssh_create.php
+#
+#       Create the blank cvs trees
+#
+20 * * * * $PHP $GFORGE/plugins/scmcvs/cronjobs/cvs.php
+#
+#				Create CVS tarballs
+#
+#
+5 2 * * * $PHP $GFORGE/plugins/scmcvs/cronjobs/tarballs.php
+#
+#	Create CVS snapshots
+#
+# CVSROOT and SCMSNAPSHOTSDIR variables are hard-coded in the script, so
+# you'll have to edit the script if necessary.
+#
+35 2 * * * /bin/sh $GFORGE/plugins/scmcvs/bin/snapshots.sh generate
+#
+#       Daily CVS stats collection
+#
+20 1 * * * $PHP $GFORGE/plugins/scmcvs/cronjobs/history_parse.php
+

Added: trunk/gforge_base/evolvisforge/plugins.test/scmcvs/cronjobs/cvs.php
===================================================================
--- trunk/gforge_base/evolvisforge/plugins.test/scmcvs/cronjobs/cvs.php	                        (rev 0)
+++ trunk/gforge_base/evolvisforge/plugins.test/scmcvs/cronjobs/cvs.php	2010-02-26 00:19:01 UTC (rev 4850)
@@ -0,0 +1,377 @@
+#! /usr/bin/php4 -f
+<?php
+/**
+ * GForge Cron Job
+ *
+ * The rest Copyright 2002-2005 (c) GForge Team
+ * http://gforge.org/
+ *
+ * @version   $Id$
+ *
+ * This file is part of GForge.
+ *
+ * GForge 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.
+ *
+ * GForge is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with GForge; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ */
+
+require ('squal_pre.php');
+require ('common/include/cron_utils.php');
+require_once('common/mail/MailingList.class');
+require_once('common/mail/MailingListFactory.class');
+
+require_once('common/include/SCM.class') ;
+
+setup_plugin_manager () ;
+
+//
+//	Some OSs do not allow root to do a commit
+//	so having this script do a proper checkout/commit is not possible
+//
+$scmcvs_proper_commit_loginfo=false;
+
+/**
+ * Retrieve a file into a temporary directory from a CVS server
+ *
+ * @param String $repos Repository Name
+ * @param String $file File Name
+ *
+ * return String the FileName in the working repository
+ */
+function checkout_cvs_file($repos,$file) {
+//echo "$repos,$file\n";
+	global $scmcvs_proper_commit_loginfo;
+	if (!$scmcvs_proper_commit_loginfo) {
+		return $repos.'/'.$file;
+	}
+	$actual_dir = getcwd();
+	$tempdirname = tempnam("/tmp","cvstracker");
+	if (!$tempdirname) 
+		return false;
+	if (!unlink($tempdirname))
+		return false;
+
+	// Create the temporary directory and returns its name.
+	if (!mkdir($tempdirname))
+		return false;
+
+	if (!chdir($tempdirname))
+		return false;
+	system("cvs -d ".$repos." co ".$file);
+
+	chdir($actual_dir);
+	return $tempdirname."/".$file;
+}
+
+/**
+ * commit_cvs_file commit a file to the repository
+ *
+ * @param String $repos Repository
+ * @param String $file to commit
+ * @param String $message to commit
+ */
+function commit_cvs_file($repos,$file,$message="Automatic updated by cvstracker") {
+	global $scmcvs_proper_commit_loginfo;
+	if (!$scmcvs_proper_commit_loginfo) {
+		return true;
+	}
+	$actual_dir = getcwd();
+	chdir(dirname($file));	
+	system("cvs -d ".$repos." ci -m \"".$message."\" ".basename($file));
+	// unlink (basename($file));
+	chdir($actual_dir);
+}
+
+/**
+ * release_cvs_file - Remove the file that was checked out from cvs
+ * @see checkout_cvs_file
+ */
+function release_cvs_file($file) {
+	global $scmcvs_proper_commit_loginfo;
+	if (!$scmcvs_proper_commit_loginfo) {
+		return true;
+	}
+	// $file is something like /tmp/(tmp_dir)/path/to/file
+	// we must delete /tmp/tmp_dir
+	if (!preg_match("/^(\\/tmp\\/[^\\/]*)\\/.* /", $file, $result)) {		// Make sure the dir is under /tmp
+		echo "Trying to release a directory not in /tmp. Skipping...";
+		return;
+	}
+	$dir = $result[1];
+	
+	// this shouldn't happen... but add it as a security checke
+	if (util_is_root_dir($dir)) {
+		echo "Trying to delete root dir. Skipping...";
+		return;
+	}
+	$dir = escapeshellarg($dir);
+	system("rm -rf ".$dir);
+}
+
+function cvs_write_file($filePath, $content, $append=1) {
+	if ($append) {
+		$file = fopen($filePath, 'a');
+	} else {
+		$file = fopen($filePath, 'w');
+	}
+	flock($file, LOCK_EX);
+	if(!empty($content)) {
+		fwrite($file, $content);
+	}
+	flock($file, LOCK_UN);
+	fclose($file);
+}
+
+/**
+ *add_sync_mail write to /CVSROOT/loginfo unix_name-commits at lists.gforge.company.com
+ *
+ *@param $unix_group_name Name Group
+ *@return void
+ *@date 2004-10-25
+ */
+function add_sync_mail($unix_group_name) {
+
+	global $sys_lists_host, $cvsdir_prefix, $cvs_binary_version,$sys_plugins_path;
+	$loginfo_file=$cvsdir_prefix.'/'.$unix_group_name.'/CVSROOT/loginfo';
+
+	if (!$loginfo_file) {
+		echo "Couldn't get loginfo for $unix_group_name";
+		return;
+	}
+
+	$content = file_get_contents ($loginfo_file);
+	if ( strstr($content, "syncmail") == FALSE) {
+//		echo $unix_group_name.":Syncmail not found in loginfo.Adding\n";
+		if ( $cvs_binary_version == "1.11" ) {
+			$pathsyncmail = "DEFAULT ".
+				$sys_plugins_path."/cvssyncmail/bin/syncmail -u %{sVv} ".
+				$unix_group_name."-commits@".$sys_lists_host;
+		} else { //it's 1.12
+			$pathsyncmail = "DEFAULT ".
+				$sys_plugins_path."/cvssyncmail/bin/syncmail -u %p %{sVv} ".
+				$unix_group_name."-commits@".$sys_lists_host;
+		}
+		$content = "\n#BEGIN Added by cvs.php script\n".
+			$pathsyncmail. "\n#END Added by cvs.php script\n";
+		$loginfo_file = checkout_cvs_file($cvsdir_prefix.'/'.$unix_group_name,'CVSROOT/loginfo');
+		if(is_file($loginfo_file)){
+			//echo $unix_group_name.":About to write the lines\n";
+			cvs_write_file($loginfo_file, $content, 1);
+		}
+		commit_cvs_file($cvsdir_prefix."/".$unix_group_name,$loginfo_file);
+		release_cvs_file($loginfo_file);
+	} else {
+//		echo "Syncmail Found!\n";
+	}
+}
+
+/**
+ * Function to add cvstracker lines to a loginfo file
+ * @param   string  the unix_group_name
+ *
+ */
+function add_cvstracker($unix_group_name) {
+	global $cvsdir_prefix, $sys_plugins_path, $cvs_binary_version;
+	$loginfo_file=$cvsdir_prefix.'/'.$unix_group_name.'/CVSROOT/loginfo';
+
+	if (!$loginfo_file) {
+		echo "Couldn't get loginfo for $unix_group_name";
+		return;
+	}
+
+	$content = file_get_contents ($loginfo_file);
+	if ( strstr($content, "cvstracker") == FALSE) {
+		$content = "\n# BEGIN added by gforge-plugin-cvstracker";
+		if ( $cvs_binary_version == "1.11" ) {
+			$content .= "\nALL ( php -q -d include_path=".ini_get('include_path').
+				" ".$sys_plugins_path."/cvstracker/bin/post.php".
+				" ".$unix_group_name." %{sVv} )";
+		} else { //it's version 1.12
+			$content .= "\nALL ( php -q -d include_path=".ini_get('include_path').
+				" ".$sys_plugins_path."/cvstracker/bin/post.php".
+				" %r %p %{sVv} )";
+		}
+		$content .= "\n# END added by gforge-plugin-cvstracker";
+
+		$loginfo_file = checkout_cvs_file($cvsdir_prefix.'/'.$unix_group_name,'CVSROOT/loginfo');
+		if(is_file($loginfo_file)){
+			//echo $unix_group_name.":About to write the lines\n";
+			cvs_write_file($loginfo_file, $content, 1);
+		}
+		commit_cvs_file($cvsdir_prefix."/".$unix_group_name,$loginfo_file);
+		release_cvs_file($loginfo_file);
+	} else {
+//		echo "cvstracker Found!\n";
+	}
+	
+	// now make sure that if cvs version is 1.12, "UseNewInfoFmtStrings=yes" line
+	// MUST be present in CVSROOT/config, or else cvstracker won't work
+	if ($cvs_binary_version == "1.12") {
+		$config_file = $loginfo_file=$cvsdir_prefix.'/'.$unix_group_name.'/CVSROOT/config';
+		if (!is_file($config_file)) {
+			echo "Couldn't get CVSROOT/config for $unix_group_name";
+			return;
+		}
+		
+		$content = file_get_contents($config_file);
+		if (!preg_match("/UseNewInfoFmtStrings=yes/i", $content)) {
+			// file must be modified
+			$config_file = checkout_cvs_file($cvsdir_prefix.'/'.$unix_group_name,'CVSROOT/config');
+			if (is_file($config_file)) {
+				$lines = file($config_file);
+				$newlines = array();
+				foreach ($lines as $line) {
+					if (!preg_match("/UseNewInfoFmtStrings/i", $line)) {		// maybe it was set to "no"?
+						$newlines[] = trim($line);
+					}
+				}
+				$newlines[] = "UseNewInfoFmtStrings=yes";	// add the required line at the end
+			}
+			$content = implode("\n", $newlines);
+			cvs_write_file($config_file, $content, 0);
+			commit_cvs_file($cvsdir_prefix."/".$unix_group_name, $config_file);
+			release_cvs_file($config_file);
+		}
+	}
+}
+
+function add_acl_check($unix_group_name) {
+	global $cvsdir_prefix;
+
+	$commitinfofile = $cvsdir_prefix."/".$unix_group_name.'/CVSROOT/commitinfo';
+
+	$content = file_get_contents ($commitinfofile);
+	if ( strstr($content, "aclcheck") == FALSE) {
+
+		$commitinfofile = checkout_cvs_file($cvsdir_prefix.'/'.$unix_group_name,'CVSROOT/commitinfo');
+		$aclcheck = "\n#BEGIN adding cvs acl check".
+			"\nALL php -q -d include_path=".ini_get('include_path').
+				" ".$GLOBALS['sys_plugins_path']."/scmcvs/bin/aclcheck.php %r %p ".
+			"\n#END adding cvs acl check\n";
+		cvs_write_file($commitinfofile, $aclcheck, 1);
+		commit_cvs_file($cvsdir_prefix."/".$unix_group_name,$commitinfofile);
+		release_cvs_file($commitinfofile);
+	} else {
+//		echo "cvstracker Found!\n";
+	}
+}
+
+function update_cvs_repositories() {
+	global $cvsdir_prefix;
+
+	$res = db_query("select groups.group_id,groups.unix_group_name,groups.enable_anonscm,groups.enable_pserver".
+		" FROM groups, plugins, group_plugin".
+		" WHERE groups.status != 'P' ".
+		" AND groups.group_id=group_plugin.group_id ".
+		" AND group_plugin.plugin_id=plugins.plugin_id ".
+		" AND plugins.plugin_name='scmcvs'");
+	
+	for($i = 0; $i < db_numrows($res); $i++) {
+		/*
+			Simply call cvscreate.sh
+		*/
+		
+		$project = &group_get_object(db_result($res,$i,'group_id')); // get the group object for the current group
+		
+		if ( (!$project) || (!is_object($project))  )  {
+			echo "Error Getting Group." . " Id : " . db_result($res,$i,'group_id') . " , Name : " . db_result($res,$i,'unix_group_name');
+			break; // continue to the next project
+		}
+		
+		$repositoryPath = $cvsdir_prefix."/".$project->getUnixName();
+		if (is_dir($repositoryPath)) {
+			$writersContent = '';
+			$readersContent = '';
+			$passwdContent = '';
+			if($project->enableAnonSCM()) {
+				$repositoryMode = 02775;
+				if ($project->enablePserver()) {
+					$readersContent = 'anonymous';
+					$passwdContent = 'anonymous:8Z8wlZezt48mY';
+				}
+			} else {
+				$repositoryMode = 02770;
+			}
+			chmod($repositoryPath, $repositoryMode);
+			cvs_write_file($repositoryPath.'/CVSROOT/writers', $writersContent, 0);
+			cvs_write_file($repositoryPath.'/CVSROOT/readers', $readersContent, 0);
+			cvs_write_file($repositoryPath.'/CVSROOT/passwd', $passwdContent, 0);
+			if ($project->usesPlugin('cvssyncmail')) {
+				add_sync_mail($project->getUnixName());
+			}
+			if ($project->usesPlugin('cvstracker')) {
+				add_cvstracker($project->getUnixName());
+			}
+			add_acl_check($project->getUnixName());
+		} elseif (is_file($repositoryPath)) {
+			$err .= $repositoryPath.' already exists as a file';
+		} else {
+			// Creates the repository
+			
+			// first, make sure the UNIX group exists
+			$data = exec('getent group '.$project->getUnixName());
+			if (empty($data)) {
+				// group doesn't exist -- cronjob that creates users and groups hasn't run yet
+				continue;
+			}
+			
+			$enableAnonSCM = ($project->enableAnonSCM()) ? 1 : 0;
+			$enablePserver = ($project->enablePserver()) ? 1 : 0;
+			system(dirname(__FILE__).'/cvscreate.sh '.
+				$project->getUnixName().
+//				' '.($project->getID()+50000).
+				' '.$project->getUnixName().
+				' '.$enableAnonSCM.
+				' '.$enablePserver);
+			if ($project->usesPlugin('cvssyncmail')) {
+				add_sync_mail($project->getUnixName());
+			}
+			if ($project->usesPlugin('cvstracker')) {
+				add_cvstracker($project->getUnixName());
+			}
+			add_acl_check($project->getUnixName());
+		}
+	}
+}
+
+
+
+/*
+
+
+	Loop through and create/update each repository for every project 
+	that uses SCMCVS plugin
+
+
+*/
+if(is_dir($cvsdir_prefix)) {
+	update_cvs_repositories();
+} else {
+	if(is_file($cvsdir_prefix)) {
+		$err .= "$cvsdir_prefix exists but is a file\n";
+		exit;
+	} else {
+		if (mkdir($cvsdir_prefix)) {
+			//need to update group permissions using chmod
+			update_cvs_repositories();
+		} else {
+			$err .= "unable to make $cvsdir_prefix directory\n";
+			exit;
+		}	
+	}
+}
+
+
+cron_entry(13,$err);
+
+?>


Property changes on: trunk/gforge_base/evolvisforge/plugins.test/scmcvs/cronjobs/cvs.php
___________________________________________________________________
Added: svn:executable
   + *

Added: trunk/gforge_base/evolvisforge/plugins.test/scmcvs/cronjobs/cvscreate.sh
===================================================================
--- trunk/gforge_base/evolvisforge/plugins.test/scmcvs/cronjobs/cvscreate.sh	                        (rev 0)
+++ trunk/gforge_base/evolvisforge/plugins.test/scmcvs/cronjobs/cvscreate.sh	2010-02-26 00:19:01 UTC (rev 4850)
@@ -0,0 +1,70 @@
+#!/bin/sh
+echo ""
+echo "CVS Repository Tool"
+echo "Portions (c)1999 SourceForge Development Team"
+echo "The rest (c)2004 Guillaume Smet"
+echo "Released under the GPL, 1999"
+echo ""
+echo ""
+
+# if no arguments, print out help screen
+if test $# -lt 4; then 
+	echo "usage:"
+	echo "  cvscreate.sh [repositoryname] [groupname] [isanonymousenabled] [ispserverenabled]"
+	echo ""
+	exit 1 
+fi
+
+repositoryname=$1
+repositorypath=/cvsroot/$1
+groupname=$2
+isanonymousenabled=$3
+ispserverenabled=$4
+
+function setPserverAccess() {
+	writers=""
+	readers=""
+	passwd=""
+	if [[ $isanonymousenabled -eq 1 && $ispserverenabled -eq 1 ]] ; then
+		readers="anonymous::anonymous"
+		passwd="anonymous:\$1\$0H\$2/LSjjwDfsSA0gaDYY5Df/:anonymous"
+	fi
+	echo $writers > $repositorypath/CVSROOT/writers
+	echo $readers > $repositorypath/CVSROOT/readers
+	echo $passwd > $repositorypath/CVSROOT/passwd
+}
+
+function setRepositoryAccess() {
+	if [ $isanonymousenabled -eq 1 ] ; then
+		# make the repository user and group writable and world readable
+		chmod 2775 $repositorypath
+	else
+		# make the repository user and group writable but not accessible to other users
+		chmod 2770 $repositorypath
+	fi
+}
+
+function createRepository() {
+	mkdir $repositorypath
+	mkdir -p /cvsroot/cvs-locks/$repositoryname
+	chmod 755 /cvsroot/cvs-locks
+	chmod 3777 /cvsroot/cvs-locks/$repositoryname
+	setRepositoryAccess
+	cvs -d$repositorypath init
+	setPserverAccess
+	echo "SystemAuth=yes" > $repositorypath/CVSROOT/config
+	echo "LockDir=/cvsroot/cvs-locks/$repositoryname" >> $repositorypath/CVSROOT/config
+	chmod 444 $repositorypath/CVSROOT/config
+	echo "" > $repositorypath/CVSROOT/val-tags
+	chmod 664 $repositorypath/CVSROOT/val-tags
+	chown -R nobody:$groupname $repositorypath
+}
+
+if [ -d $repositorypath ] ; then
+	echo "$repositoryname already exists."
+	setRepositoryAccess
+	setPserverAccess
+	echo ""
+else
+	createRepository
+fi


Property changes on: trunk/gforge_base/evolvisforge/plugins.test/scmcvs/cronjobs/cvscreate.sh
___________________________________________________________________
Added: svn:executable
   + *

Added: trunk/gforge_base/evolvisforge/plugins.test/scmcvs/cronjobs/cvssh.pl
===================================================================
--- trunk/gforge_base/evolvisforge/plugins.test/scmcvs/cronjobs/cvssh.pl	                        (rev 0)
+++ trunk/gforge_base/evolvisforge/plugins.test/scmcvs/cronjobs/cvssh.pl	2010-02-26 00:19:01 UTC (rev 4850)
@@ -0,0 +1,50 @@
+#! /usr/bin/perl -w
+#
+# $Id$
+#
+# "Shell" for a restricted account, limiting the available commands
+# Roland Mas, debian-sf (Sourceforge for Debian)
+#
+# Inspired from the grap.c file in Sourceforge 2.5
+
+use strict ;
+use vars qw/ @allowed_options @allowed_commands $errmsg @cmd / ;
+use subs qw/ &reject / ;
+no locale ;
+
+ at allowed_options = ('-c', '-e') ;
+ at allowed_commands = ('cvs') ;
+
+# Clean up our environment
+delete @ENV{qw(IFS CDPATH ENV BASH_ENV PATH)};
+
+if ($#ARGV != 1) {
+    if ($#ARGV < 1) {
+	$errmsg = "Not enough arguments." ;
+    } else {
+	$errmsg = "Too many arguments." ;
+    }
+    &reject ;
+}
+
+if (scalar (grep { $_ eq $ARGV[0] } @allowed_options) == 0) {
+    $errmsg = "Option not allowed." ;
+    &reject ;
+}
+
+ at cmd = split (/ +/, $ARGV[1]) ;
+
+if (scalar (grep { $_ eq $cmd[0] } @allowed_commands) == 0) {
+    $errmsg = "Command not allowed." ;
+    &reject ;
+}
+
+exec @cmd ;
+
+sub reject {
+    print "This is a restricted account.\n" . 
+	"You cannot execute anything here.\n" . 
+	# $errmsg . "\n" .
+	"Goodbye.\n" ;
+    exit 1 ;
+}


Property changes on: trunk/gforge_base/evolvisforge/plugins.test/scmcvs/cronjobs/cvssh.pl
___________________________________________________________________
Added: svn:executable
   + *

Added: trunk/gforge_base/evolvisforge/plugins.test/scmcvs/cronjobs/default_page.php
===================================================================
--- trunk/gforge_base/evolvisforge/plugins.test/scmcvs/cronjobs/default_page.php	                        (rev 0)
+++ trunk/gforge_base/evolvisforge/plugins.test/scmcvs/cronjobs/default_page.php	2010-02-26 00:19:01 UTC (rev 4850)
@@ -0,0 +1,197 @@
+<?php
+
+$domain=ereg_replace('[^\.]*\.(.*)$','\1',$_SERVER['HTTP_HOST']);
+$group_name=ereg_replace('([^\.]*)\..*$','\1',$_SERVER['HTTP_HOST']);
+
+echo '<?xml version="1.0" encoding="UTF-8"?>';
+?>
+<!DOCTYPE html
+	PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+	"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en   ">
+
+  <head>
+	<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+	<title><?php echo $project_name; ?></title>
+	<script language="JavaScript" type="text/javascript">
+	<!--
+	function help_window(helpurl) {
+		HelpWin = window.open( helpurl,'HelpWindow','scrollbars=yes,resizable=yes,toolbar=no,height=400,width=400');
+	}
+	// -->
+		</script>
+
+<style type="text/css">
+	<!--
+	BODY {
+		margin-top: 3;
+		margin-left: 3;
+		margin-right: 3;
+		margin-bottom: 3;
+		background: #01004e;
+	}
+	ol,ul,p,body,td,tr,th,form { font-family: verdana,arial,helvetica,sans-serif; font-size:small;
+		color: #333333; }
+
+	h1 { font-size: x-large; font-family: verdana,arial,helvetica,sans-serif; }
+	h2 { font-size: large; font-family: verdana,arial,helvetica,sans-serif; }
+	h3 { font-size: medium; font-family: verdana,arial,helvetica,sans-serif; }
+	h4 { font-size: small; font-family: verdana,arial,helvetica,sans-serif; }
+	h5 { font-size: x-small; font-family: verdana,arial,helvetica,sans-serif; }
+	h6 { font-size: xx-small; font-family: verdana,arial,helvetica,sans-serif; }
+
+	pre,tt { font-family: courier,sans-serif }
+
+	a:link { text-decoration:none }
+	a:visited { text-decoration:none }
+	a:active { text-decoration:none }
+	a:hover { text-decoration:underline; color:red }
+
+	.titlebar { color: black; text-decoration: none; font-weight: bold; }
+	a.tablink { color: black; text-decoration: none; font-weight: bold; font-size: x-small; }
+	a.tablink:visited { color: black; text-decoration: none; font-weight: bold; font-size: x-small; }
+	a.tablink:hover { text-decoration: none; color: black; font-weight: bold; font-size: x-small; }
+	a.tabsellink { color: black; text-decoration: none; font-weight: bold; font-size: x-small; }
+	a.tabsellink:visited { color: black; text-decoration: none; font-weight: bold; font-size: x-small; }
+	a.tabsellink:hover { text-decoration: none; color: black; font-weight: bold; font-size: x-small; }
+	-->
+</style>
+
+</head>
+
+<body>
+
+<table border="0" width="100%" cellspacing="0" cellpadding="0">
+
+	<tr>
+		<td><a href="/"><img src="http://<?php echo $domain; ?>/themes/gforge/images/logo.png" border="0" alt="" width="198" height="52" /></a></td>
+	</tr>
+
+</table>
+
+<table border="0" width="100%" cellspacing="0" cellpadding="0">
+
+	<tr>
+		<td>&nbsp;</td>
+		<td colspan="3">
+
+
+
+		<!-- start tabs -->
+
+	<tr>
+		<td align="left" bgcolor="#E0E0E0" width="9"><img src="http://<?php echo $domain; ?>/themes/gforge/images/tabs/topleft.png" height="9" width="9" alt="" /></td>
+		<td bgcolor="#E0E0E0" width="30"><img src="http://<?php echo $domain; ?>/themes/gforge/images/clear.png" width="30" height="1" alt="" /></td>
+		<td bgcolor="#E0E0E0"><img src="http://<?php echo $domain; ?>/themes/gforge/images/clear.png" width="1" height="1" alt="" /></td>
+		<td bgcolor="#E0E0E0" width="30"><img src="http://<?php echo $domain; ?>/themes/gforge/images/clear.png" width="30" height="1" alt="" /></td>
+		<td align="right" bgcolor="#E0E0E0" width="9"><img src="http://<?php echo $domain; ?>/themes/gforge/images/tabs/topright.png" height="9" width="9" alt="" /></td>
+	</tr>
+
+	<tr>
+
+		<!-- Outer body row -->
+
+		<td bgcolor="#E0E0E0"><img src="http://<?php echo $domain; ?>/themes/gforge/images/clear.png" width="10" height="1" alt="" /></td>
+		<td valign="top" width="99%" bgcolor="#E0E0E0" colspan="3">
+
+			<!-- Inner Tabs / Shell -->
+
+			<table border="0" width="100%" cellspacing="0" cellpadding="0">
+			<tr>
+				<td align="left" bgcolor="#ffffff" width="9"><img src="http://<?php echo $domain; ?>/themes/gforge/images/tabs/topleft-inner.png" height="9" width="9" alt="" /></td>
+				<td bgcolor="#ffffff"><img src="http://<?php echo $domain; ?>/themes/gforge/images/clear.png" width="1" height="1" alt="" /></td>
+				<td align="right" bgcolor="#ffffff" width="9"><img src="http://<?php echo $domain; ?>/themes/gforge/images/tabs/topright-inner.png" height="9" width="9" alt="" /></td>
+			</tr>
+
+			<tr>
+				<td bgcolor="#ffffff"><img src="http://<?php echo $domain; ?>/themes/gforge/images/clear.png" width="10" height="1" alt="" /></td>
+				<td valign="top" width="99%" bgcolor="white">
+
+	<!-- whole page table -->
+<table width="100%" cellpadding="5" cellspacing="0" border="0">
+<tr><td width="65%" valign="top">
+<?php if ($handle=fopen('http://'.$domain.'/export/projtitl.php?group_name='.$group_name,'r')){
+$contents = '';
+while (!feof($handle)) {
+	$contents .= fread($handle, 8192);
+}
+fclose($handle);
+echo $contents; } ?>
+
+<?php if ($handle=fopen('http://'.$domain.'/export/projnews.php?group_name='.$group_name,'r')){
+$contents = '';
+while (!feof($handle)) {
+	$contents .= fread($handle, 8192);
+}
+fclose($handle);
+$contents=str_replace('href="/','href="http://'.$domain.'/',$contents);
+echo $contents; } ?>
+
+</td>
+
+<td width="35%" valign="top">
+
+		<table cellspacing="0" cellpadding="1" width="100%" border="0" bgcolor="#d5d5d7">
+		<tr><td>
+			<table cellspacing="0" cellpadding="2" width="100%" border="0" bgcolor="#eaecef">
+				<tr style="background-color:#d5d5d7" align="center">
+					<td colspan="2"><span class="titlebar">Project Summary</span></td>
+				</tr>
+				<tr align="left">
+					<td colspan="2">
+
+<?php if($handle=fopen('http://'.$domain.'/export/projhtml.php?group_name='.$group_name,'r')){
+$contents = '';
+while (!feof($handle)) {
+	$contents .= fread($handle, 8192);
+}
+fclose($handle);
+$contents=str_replace('href="/','href="http://'.$domain.'/',$contents);
+$contents=str_replace('src="/','src="http://'.$domain.'/',$contents);
+echo $contents; } ?>
+
+					</td>
+				</tr>
+			</table>
+		</td></tr>
+		</table><p>&nbsp;</p>
+</td></tr></table>
+			&nbsp;<p>
+			<center>
+			<a href="http://gforgegroup.com/"><img src="http://gforge.org/pro/gforgebanner.jpg" height="60" width="468" border="0" alt="GForge Group Professional Services" /></a><br /><br />
+			</center>
+			<!-- end main body row -->
+
+
+				</td>
+				<td width="10" bgcolor="#ffffff"><img src="http://<?php echo $domain; ?>/themes/gforge/images/clear.png" width="2" height="1" alt="" /></td>
+			</tr>
+			<tr>
+				<td align="left" bgcolor="#E0E0E0" width="9"><img src="http://<?php echo $domain; ?>/themes/gforge/images/tabs/bottomleft-inner.png" height="11" width="11" alt="" /></td>
+				<td bgcolor="#ffffff"><img src="http://<?php echo $domain; ?>/themes/gforge/images/clear.png" width="1" height="1" alt="" /></td>
+				<td align="right" bgcolor="#E0E0E0" width="9"><img src="http://<?php echo $domain; ?>/themes/gforge/images/tabs/bottomright-inner.png" height="11" width="11" alt="" /></td>
+			</tr>
+			</table>
+
+		<!-- end inner body row -->
+
+		</td>
+		<td width="10" bgcolor="#E0E0E0"><img src="http://<?php echo $domain; ?>/themes/gforge/images/clear.png" width="2" height="1" alt="" /></td>
+	</tr>
+	<tr>
+		<td align="left" bgcolor="#E0E0E0" width="9"><img src="http://<?php echo $domain; ?>/themes/gforge/images/tabs/bottomleft.png" height="9" width="9" alt="" /></td>
+		<td bgcolor="#E0E0E0" colspan="3"><img src="http://<?php echo $domain; ?>/themes/gforge/images/clear.png" width="1" height="1" alt="" /></td>
+		<td align="right" bgcolor="#E0E0E0" width="9"><img src="http://<?php echo $domain; ?>/themes/gforge/images/tabs/bottomright.png" height="9" width="9" alt="" /></td>
+	</tr>
+</table>
+
+<!-- PLEASE LEAVE "Powered By GForge" on your site -->
+<br />
+<center>
+<a href="http://gforge.org/"><img src="http://gforge.org/images/pow-gforge.png" alt="Powered By GForge Collaborative Development Environment" border="0" /></a>
+</center>
+
+
+</body>
+</html>


Property changes on: trunk/gforge_base/evolvisforge/plugins.test/scmcvs/cronjobs/default_page.php
___________________________________________________________________
Added: svn:executable
   + *

Added: trunk/gforge_base/evolvisforge/plugins.test/scmcvs/cronjobs/ftp_create.php
===================================================================
--- trunk/gforge_base/evolvisforge/plugins.test/scmcvs/cronjobs/ftp_create.php	                        (rev 0)
+++ trunk/gforge_base/evolvisforge/plugins.test/scmcvs/cronjobs/ftp_create.php	2010-02-26 00:19:01 UTC (rev 4850)
@@ -0,0 +1,79 @@
+#! /usr/bin/php4 -f
+<?php
+/**
+ * GForge Cron Job
+ *
+ * The rest Copyright 2002-2005 (c) GForge Team
+ * http://gforge.org/
+ *
+ * @version   $Id$
+ *
+ * This file is part of GForge.
+ *
+ * GForge 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.
+ *
+ * GForge is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with GForge; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ */
+
+/*
+	This file creates the root directories for the FTP
+*/
+require_once('squal_pre.php');
+require ('common/include/cron_utils.php');
+
+$err = '';
+
+if ($sys_use_ftpuploads) { 	
+	//
+	//	Add the groups from the gforge database
+	//
+	$res=db_query("SELECT group_id,unix_group_name FROM groups WHERE status='A' AND type_id='1'");
+	for($i = 0; $i < db_numrows($res); $i++) {
+	    $groups[] = db_result($res,$i,'unix_group_name');
+	}
+	
+	//
+	//	Create home dir for groups
+	//
+	foreach($groups as $group) {
+	
+		//create an FTP upload dir for this project
+		$destdir = $sys_ftp_upload_dir.'/'.$group;
+		if (util_is_root_dir($destdir)) {
+			$err .= "Trying to access root directory\n";
+			continue;
+		}
+
+		if (!is_dir($destdir)) {
+			if (!@mkdir($destdir)) {
+				$err .= 'Could not create dir: '.$destdir."\n";
+				continue;
+			} 
+			// Unfortunately some versions of PHP don't set the mode properly when 
+			// specified on the mkdir command, so we need to do it here
+			if (!@chmod($destdir, 0770)) {
+				$err .= 'Could not chmod dir: '.$destdir."\n";
+				continue;
+			} 
+			if (!@chown($destdir, $sys_apache_user)) {
+				$err .= 'Could not chown dir: '.$destdir."\n";
+				continue;
+			} 
+			if (!@chgrp($destdir, $sys_apache_group)) {
+				$err .= 'Could not chgrp dir: '.$destdir."\n";
+				continue;
+			} 
+		}
+	}
+}
+?>

Added: trunk/gforge_base/evolvisforge/plugins.test/scmcvs/cronjobs/grap.c
===================================================================
--- trunk/gforge_base/evolvisforge/plugins.test/scmcvs/cronjobs/grap.c	                        (rev 0)
+++ trunk/gforge_base/evolvisforge/plugins.test/scmcvs/cronjobs/grap.c	2010-02-26 00:19:01 UTC (rev 4850)
@@ -0,0 +1,168 @@
+/* graplite - General execution wRAPper LITE!
+ * Copyright (C) 1999 Lion Templin <lion at leonine.com>
+ * FILE: graplite.c
+ * VERSION : 0.1 (991111)
+ *
+ * $Id$
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ *
+ * GOTO FOREVER!
+ *
+ *	Coded on Northwest Airlines Flight 1065, CHI to MSP
+ *
+ */
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <unistd.h>
+
+/* grap is a wrapper designed to verify commands before passing them to system()
+   or just reporting the accepted command.  grap will report an error if the
+   input is invalid.  It checks for string lengths (prevent overflows),
+   specific sets of options and commands.
+   
+   grap, in full force, is called as:  <grap> <option> "<command> <arguments
+   list ... >" Where <grap> is this program, <option> is an optional trap
+   for a single option (like "-e" or "-c" used by programs that call shells,
+   subject to the approval list below), <command> is the command wished to
+   be run (subject to the approval list below), and <arguments list .. > is
+   the list of args passed to <command>.  All are optional, allowing for
+   forms such as:
+   	graplite -e "foo"   graplite "foo bar"  graplite -e "foo -c foo -f bar"
+   	<g     ><o ><cmd>   <g     > <cmd/args> <g     ><o> <cmd/  args       >
+   	
+	<options> and <command> need to be exact matched to those in the
+	acceptance list.  
+*/
+
+/* Define the locations of <option> <command> and <arguements list .. >
+   on the command line.  0 is this program, begin at 1.  Note that 
+   ARGS_ARGC takes everything FROM that position to the end of the
+   arguments.
+
+   Undefine any of these to not use them.
+*/
+
+#define	OPTION_ARGC		1
+#define ARGS_ARGC		2
+
+#define	ARGS_ARE_SINGLE_STRING
+
+/* Define how the <arguements list .. > is checked.
+   define ARGS_ALNUMOK for A-Za-z0-9 to be OK
+   define any other chars in the string ARGS_CHAROK
+
+   Turn both these off to accept everything.
+   WARNING, might be able to bad things with
+   shell special chars such as & ; , etc.
+*/
+
+#define MAXSTRLEN		256		/* maximum single string length
+						   (no max on final command) */
+/* Define what strings are acceptable in <option> */
+char *options[] = 		{ "-c", "-e", NULL };
+
+/* Define what strings are acceptable in <command>
+   define an optional execution path CMD_PATH if desired */
+char *commands[] = 		{ "cvs", "server", "svnserve", NULL };
+
+#define MAXARGS		256
+
+/* NO USER SERVICEABLE PARTS BELOW --------------------------------- */
+
+
+#define	GRAP_TRUE		1
+#define GRAP_FALSE		0
+#define CMD_POS			0
+
+int main(int argc, char *argv[]) {
+
+	int i, j, n, argslen, flag;
+	char *buf;
+	char **args[MAXARGS];
+
+
+	if(argc < 3) {
+			/* printf("FATAL: %s bailed because not enough options.\n", argv[0]); */
+
+			printf("\nWelcome to GForge SCM\n\n");
+			printf("This is a restricted Shell Account\n");
+			printf("You cannot execute anything here.\n\n");
+
+			exit(1);
+	}
+	
+
+	/* process the initial option (see options array) */
+
+	i = -1;
+	while((options[++i] != NULL) && strncmp(options[i], argv[OPTION_ARGC], MAXSTRLEN));
+		if(options[i] == NULL || strlen(argv[OPTION_ARGC]) > MAXSTRLEN) {
+			/* printf("FATAL: %s bailed because options didn't qualify.\n", argv[0]); */
+
+			printf("\nWelcome to GForge SCM\n\n");
+			printf("This is a restricted Shell Account\n");
+			printf("You cannot execute anything here.\n\n");
+
+			exit(1);
+		}
+	
+	/* break single command and args string into seperate strings
+	   in a char** for execvp() to use */
+
+	i = 0;
+	flag = GRAP_TRUE;
+	buf = argv[ARGS_ARGC];
+
+	j = CMD_POS;
+	n = 0;
+
+	while(buf[i] != 0 && j < MAXARGS) {
+		if(buf[i] == ' ') {
+			buf[i] = 0;
+			flag = GRAP_TRUE;
+		} else 
+			if(flag) {
+				args[j++] = (char **)&buf[i];
+				flag = GRAP_FALSE;
+				args[j] = NULL;
+				n++;
+			}
+		i++;
+	}
+
+	/* check the command to insure it's in the acceptance list */
+
+	i = -1;
+	while((options[++i] != NULL) && strncmp(commands[i], args[CMD_POS], MAXSTRLEN));
+	if(options[i] == NULL || strlen((char *)args[CMD_POS]) > MAXSTRLEN) {
+
+	/* 	printf("FATAL: %s bailed because command didn't qualify.\n", args[CMD_POS]); */
+
+		printf("\nWelcome to GForge SCM\n\n");
+		printf("This is a restricted Shell Account\n");
+		printf("You cannot execute anything here.\n\n");
+
+		exit(1);
+	}
+
+
+	/* ok, the command is clear, exec() it */
+
+	execvp((char *)args[CMD_POS], (char **)args);
+
+}
+


Property changes on: trunk/gforge_base/evolvisforge/plugins.test/scmcvs/cronjobs/grap.c
___________________________________________________________________
Added: svn:executable
   + *

Added: trunk/gforge_base/evolvisforge/plugins.test/scmcvs/cronjobs/history_parse.php
===================================================================
--- trunk/gforge_base/evolvisforge/plugins.test/scmcvs/cronjobs/history_parse.php	                        (rev 0)
+++ trunk/gforge_base/evolvisforge/plugins.test/scmcvs/cronjobs/history_parse.php	2010-02-26 00:19:01 UTC (rev 4850)
@@ -0,0 +1,304 @@
+#!/usr/bin/php -q
+<?php
+
+require_once('squal_pre.php');
+require ('common/include/cron_utils.php');
+
+/**
+ *
+ * Recurses through the /cvsroot directory tree and parses each projects
+ * '~/CVSROOT/history' file, building agregate stats on the number of
+ * checkouts, commits, and adds to each project over the past 24 hours.
+ *
+ * @version	 $Id$
+ */
+
+$ARGV = $GLOBALS['argv'];
+$err = '';
+$verbose = 1;
+$debug = 0;
+$cvsroot = "/cvsroot";
+$groups = array();
+
+function debug($message) {
+	global $debug, $err;
+	if($debug) {
+		$err .= $message."\n";
+	}
+}
+
+
+function get_all_days(){
+	
+	global $cvsroot;
+	global $err;
+	global $verbose;
+	global $debug;
+
+	$all_days = array();
+  $root_dir =& opendir( $cvsroot );
+	while ( $group = readdir( $root_dir ) ) {
+		if ( $group == '.' || $group == '..' ) 
+			continue;
+		if ( ! is_dir( "$cvsroot/$group" ) ) 
+			continue;
+
+		// opening CVSROOT/history file for the current repository
+		$hist_file_path = $cvsroot.'/'.$group.'/CVSROOT/history';
+		if( !file_exists($hist_file_path) || !is_readable($hist_file_path) || filesize($hist_file_path) == 0) {
+			debug('History file for group '.$group.' does not exist or is not readable');
+			continue;
+		}
+		$hist_file =& fopen( $hist_file_path, 'r' );
+		if ( ! $hist_file ) {
+			debug('Cannot open history file');
+			continue;
+		}
+
+		// analyzing history file
+		while (!feof($hist_file)) {
+			$hist_line = fgets($hist_file, 1024);
+			if ( preg_match( '/^\s*$/', $hist_line ) ) {
+				continue;
+			}
+			list( $cvstime,$user,$curdir,$module,$rev,$file ) = explode( '|', $hist_line );
+	
+			$time_parsed = hexdec( substr($cvstime, 1, 8) );
+			
+			$day = gmmktime( 0, 0, 0, gmstrftime("%m", $time_parsed ), gmstrftime("%d", $time_parsed ), gmstrftime("%Y", $time_parsed ) );
+
+			if(!in_array($day, $all_days))
+				array_push($all_days, $day);
+			
+		}
+		fclose( $hist_file );
+	}
+
+	return $all_days;
+}
+
+function process_day($day_begin, $day_end){
+	
+	global $cvsroot;
+	global $err;
+	global $verbose;
+	global $debug;
+	global $groups;
+	
+	
+ 	$year	= gmstrftime("%Y", $day_begin );
+	$month	= gmstrftime("%m", $day_begin );
+	$day	= gmstrftime("%d", $day_begin );
+	
+	$month_string = sprintf( "%04d%02d", $year, $month );
+
+	if($verbose) {
+		$err .= "Parsing cvs logs looking for traffic on day $day, " .
+		"month $month, year $year.\n";
+	}
+
+	$rollback = false;
+	
+	$root_dir =& opendir( $cvsroot );
+	while ( $group = readdir( $root_dir ) ) {
+		if ( $group == '.' || $group == '..' ) 
+			continue;
+		if ( ! is_dir( "$cvsroot/$group" ) ) 
+			continue;
+	
+		debug('Working on group '.$group);
+	
+		if (array_key_exists($group, $groups)) {
+			$group_id = $groups[$group];
+		} else {
+			$err .= "Group $group does not appear to be active...	skipping.\n";
+			continue;
+		}
+	
+		$cvs_co		= 0;
+		$cvs_commit = 0;
+		$cvs_add	= 0;
+		$usr_commit = array();
+		$usr_add	= array();
+	
+		// opening CVSROOT/history file for the current repository
+		$hist_file_path = $cvsroot.'/'.$group.'/CVSROOT/history';
+		if( !file_exists($hist_file_path) || !is_readable($hist_file_path) || filesize($hist_file_path) == 0) {
+			debug('History file for group '.$group.' does not exist or is not readable');
+			continue;
+		}
+		$hist_file =& fopen( $hist_file_path, 'r' );
+		if ( ! $hist_file ) {
+			debug('Cannot open history file');
+			continue;
+		}
+
+	
+		// cleaning stats_cvs_* table for the current day to avoid conflicting index problem
+		$sql = "DELETE FROM stats_cvs_group
+			WHERE month = '$month_string'
+			AND day = '$day'
+			AND group_id = '$group_id'";
+		$res = db_query($sql);
+		if(!$res) {
+			$err .= 'Error cleaning stats_cvs_group for current day and current group: '.db_error();
+		}
+	
+		$sql = "DELETE FROM stats_cvs_user
+			WHERE month = '$month_string'
+			AND day = '$day'
+			AND group_id = '$group_id'";
+		$res = db_query($sql);
+		if(!$res) {
+			$err .= 'Error cleaning stats_cvs_user for current day and current group: '.db_error();
+		}
+	
+		// analyzing history file
+		while (!feof($hist_file)) {
+			$hist_line = fgets($hist_file, 1024);
+			if ( preg_match( '/^\s*$/', $hist_line ) ) {
+				continue;
+			}
+			list( $cvstime,$user,$curdir,$module,$rev,$file ) = explode( '|', $hist_line );
+	
+			$type = substr($cvstime, 0, 1);
+			$time_parsed = hexdec( substr($cvstime, 1, 8) );
+	
+			if ( ($time_parsed > $day_begin) && ($time_parsed < $day_end) ) {
+				if ( $type == 'M' ) {
+					$cvs_commit++;
+					$usr_commit[$user]++;
+				} elseif ( $type == 'A' ) {
+					$cvs_add++;
+					$usr_add[$user]++;
+				} elseif ( $type == 'O' || $type == 'E' ) {
+					$cvs_co++;
+					// ignoring checkouts on a per-user
+				}
+			} elseif ( $time_parsed > $day_end ) {
+				if ( $verbose >= 2 ) {
+					$err .= "Short circuting execution, parsed date " .
+						"exceeded current threshold.\n";
+				}
+				break;
+			}
+		}
+		fclose( $hist_file );
+		// if we don't have any stats, skipping to next project
+		if($cvs_co == 0 && $cvs_add == 0 && $cvs_commit == 0) {
+			$err .= "No CVS stats for group ".$group.", skipping to next project\n";
+			continue;
+		}
+	
+		// inserting group results in stats_cvs_groups
+		$sql = "INSERT INTO stats_cvs_group
+			(month,day,group_id,checkouts,commits,adds)
+			VALUES
+			('$month_string',
+			'$day',
+			'$group_id',
+			'$cvs_co',
+			'$cvs_commit',
+			'$cvs_add')";
+	
+		debug($sql);
+		if ( !db_query( $sql ) ) {
+			$err .= 'Insertion in stats_cvs_group failed: '.$sql.' - '.db_error();
+			$rollback = true;
+			break;
+		}
+	
+		// building the user list
+		$user_list = array_unique( array_merge( array_keys( $usr_add ), array_keys( $usr_commit ) ) );
+	
+		foreach ( $user_list as $user ) {
+			// trying to get user id from user name
+			$user_res = db_query( "SELECT user_id FROM users WHERE
+				user_name='$user'" );
+			if ( $user_row = db_fetch_array($user_res) ) {
+				$user_id = $user_row[0];
+			} else {
+				$err .= "User $user was not found...	skipping.\n";
+				continue;
+			}
+	
+			$sql = "INSERT INTO stats_cvs_user
+				(month,day,group_id,user_id,commits,adds) VALUES
+				('$month_string',
+				'$day',
+				'$group_id',
+				'$user_id',
+				'" . ($usr_commit{$user}?$usr_commit{$user}:0) . "',
+				'" . ($usr_add{$user}?$usr_add{$user}:0) . "')";
+	
+			debug($sql);
+			if ( !db_query( $sql )) {
+				$err .= 'Insertion in stats_cvs_user failed: '.$sql.' - '.db_error();
+				$rollback = true;
+				break 2;
+			}
+	
+		}
+	}
+	return $rollback;
+}
+
+$res = db_query( "SELECT unix_group_name, group_id FROM groups WHERE status='A'" );
+while ($row = db_fetch_array($res) ) {
+	$groups[$row['unix_group_name']] = $row['group_id'];
+}
+if (count($groups) < 1) {
+	$err = "Could not fetch list of group IDs";
+	cron_entry(14,$err);
+	exit;
+}
+
+if ( $ARGV[1] && $ARGV[2] && $ARGV[3] ) {
+	
+	$day_begin = gmmktime( 0, 0, 0, $ARGV[2], $ARGV[3], $ARGV[1] );
+	//	$day_begin = timegm( 0, 0, 0, $ARGV[2], $ARGV[1] - 1, $ARGV[0] - 1900 );
+	$day_end = $day_begin + 86400;
+ 
+	db_begin();
+	$rollback = process_day($day_begin, $day_end);
+} else if($ARGV[1]=='all' && !$ARGV[2] && !$ARGV[3]) { 
+  
+	// Heavy (rarely used) operation, allow for 8hrs
+	ini_set('max_execution_time', '30000');
+	$all_days = &get_all_days();
+	foreach ( $all_days as $day ) {
+		echo date('Y-m-d', $day)."\n";  	
+		db_begin();
+		$rollback = process_day($day, $day + 86400);
+		
+		if($rollback) {
+			break;
+		} else {
+			db_commit();
+		}
+	}
+   
+} else {
+
+	$local_time = localtime();
+		## Start at midnight last night.
+	$day_end = gmmktime( 0, 0, 0, $local_time[4] + 1, $local_time[3], $local_time[5] );
+
+	//	$day_end = gmmktime( 0, 0, 0, (gmtime( time() ))[3,4,5] );
+					 ## go until midnight yesterday.
+	$day_begin = $day_end - 86400;
+	//	$day_begin = timegm( 0, 0, 0, (gmtime( time() - 86400 ))[3,4,5] );
+	db_begin();
+	$rollback = process_day($day_begin, $day_end);
+
+}
+
+if ( $rollback ) {
+	db_rollback();
+} else {
+	db_commit();
+}
+
+cron_entry(14,$err);
+
+?>
\ No newline at end of file


Property changes on: trunk/gforge_base/evolvisforge/plugins.test/scmcvs/cronjobs/history_parse.php
___________________________________________________________________
Added: svn:executable
   + *

Added: trunk/gforge_base/evolvisforge/plugins.test/scmcvs/cronjobs/homedirs.php
===================================================================
--- trunk/gforge_base/evolvisforge/plugins.test/scmcvs/cronjobs/homedirs.php	                        (rev 0)
+++ trunk/gforge_base/evolvisforge/plugins.test/scmcvs/cronjobs/homedirs.php	2010-02-26 00:19:01 UTC (rev 4850)
@@ -0,0 +1,188 @@
+#! /usr/bin/php4 -f
+<?php
+/**
+ * GForge Cron Job
+ *
+ * The rest Copyright 2002-2005 (c) GForge Team
+ * http://gforge.org/
+ *
+ * @version   $Id$
+ *
+ * This file is part of GForge.
+ *
+ * GForge 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.
+ *
+ * GForge is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with GForge; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ */
+
+/*
+This file creates blank user home directories and 
+creates a group home directory with a template in it.
+
+#
+# * hosts
+#
+<VirtualHost 192.168.1.5>
+	ServerName gforge.company.com
+	ServerAlias *.gforge.company.com
+	VirtualDocumentRoot /home/groups/%1/htdocs
+	VirtualScriptAlias /home/groups/%1/cgi-bin
+
+	<Directory /home/groups>
+		Options Indexes FollowSymlinks
+		AllowOverride All
+		order allow,deny
+		allow from all
+
+	</Directory>
+	LogFormat "%h %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" gforge
+	CustomLog "|/usr/local/sbin/cronolog /home/groups/%1/logs/%Y/%m/%d/gforge.log" gforge
+	# Ensure that we don't try to use SSL on SSL Servers
+	<IfModule apache_ssl.c>
+		SSLDisable
+	</IfModule>
+</VirtualHost> 
+*/
+require_once('squal_pre.php');
+require ('common/include/cron_utils.php');
+
+define('USER_DEFAULT_GROUP','users');
+
+if (!isset($groupdir_prefix)) {		// this should be set in local.inc
+	$groupdir_prefix = '/home/groups';
+}
+
+if (!is_dir($groupdir_prefix)) {
+	@mkdir($groupdir_prefix);
+}
+
+$res = db_query("SELECT distinct users.user_name,users.unix_pw,users.user_id
+	FROM users,user_group,groups
+	WHERE users.user_id=user_group.user_id 
+	AND user_group.group_id=groups.group_id
+	AND groups.status='A'
+	AND user_group.cvs_flags IN ('0','1')
+	AND users.status='A'
+	ORDER BY user_id ASC");
+$err .= db_error();
+$users    =& util_result_column_to_array($res,'user_name');
+
+$group_res = db_query("SELECT unix_group_name, (is_public=1 AND enable_anonscm=1 AND type_id=1) AS enable_pserver FROM groups WHERE status='A' AND type_id='1'");
+$err .= db_error();
+$groups = util_result_column_to_array($group_res,'unix_group_name');
+
+
+//
+//	this is where we give a user a home
+//
+foreach($users as $user) {
+	if (is_dir("/home/".$user)) {
+		
+	} else {
+		@mkdir("/home/".$user);
+	}
+	system("chown $user:".USER_DEFAULT_GROUP." /home/".$user);
+}
+
+
+//
+//	Create home dir for groups
+//
+foreach($groups as $group) {
+
+	//create an FTP upload dir for this project
+	if ($sys_use_ftpuploads) { 
+		if (!is_dir($sys_ftp_upload_dir.'/'.$group)) {
+			@mkdir($sys_ftp_upload_dir.'/'.$group); 
+		}
+	}
+
+	if (is_dir($groupdir_prefix."/".$group)) {
+
+	} else {
+		@mkdir($groupdir_prefix."/".$group);
+		@mkdir($groupdir_prefix."/".$group."/htdocs");
+		@mkdir($groupdir_prefix."/".$group."/cgi-bin");
+		$g =& group_get_object_by_name($group);
+		
+
+		//
+		//	Read in the template file
+		//
+		$fo=fopen(dirname(__FILE__).'/default_page.php','r');
+		$contents = '';
+		if (!$fo) {
+			$err .= 'Default Page Not Found';
+		} else {
+			while (!feof($fo)) {
+    			$contents .= fread($fo, 8192);
+			}
+			fclose($fo);
+		}
+		//
+		//	Change some defaults in the template file
+		//
+		//$contents=str_replace('<domain>',$sys_default_domain,$contents);
+		//$contents=str_replace('<project_description>',$g->getDescription(),$contents);
+		//$contents=str_replace('<project_name>',$g->getPublicName(),$contents);
+		//$contents=str_replace('<group_id>',$g->getID(),$contents);
+		//$contents=str_replace('<group_name>',$g->getUnixName(),$contents);
+
+		//
+		//	Write the file back out to the project home dir
+		//
+		$fw=fopen($groupdir_prefix."/".$group."/htdocs/index.php",'w');
+		fwrite($fw,$contents);
+		fclose($fw);
+		
+	}
+	/*$resgroupadmin=db_query("SELECT u.user_name FROM users u,user_group ug,groups g
+		WHERE u.user_id=ug.user_id 
+		AND ug.group_id=g.group_id 
+		AND g.unix_group_name='$group'
+		AND ug.admin_flags='A'
+		AND u.status='A'");
+	if (!$resgroupadmin || db_numrows($resgroupadmin) < 1) {
+		//group has no members, so cannot create dir
+	} else {
+		$user=db_result($resgroupadmin,0,'user_name');
+		system("chown -R $user:$group $groupdir_prefix/$group");
+	}*/
+	system("chown -R $sys_apache_user:$sys_apache_group $groupdir_prefix/$group");
+}
+
+//
+// Move CVS trees for deleted groups
+//
+$res8 = db_query("SELECT unix_group_name FROM deleted_groups WHERE isdeleted = 0;");
+$err .= db_error();
+$rows	 = db_numrows($res8);
+for($k = 0; $k < $rows; $k++) {
+	$deleted_group_name = db_result($res8,$k,'unix_group_name');
+
+	if(!is_dir($cvsdir_prefix."/.deleted"))
+		system("mkdir ".$cvsdir_prefix."/.deleted");
+		
+	system("mv -f $cvsdir_prefix/$deleted_group_name/ $cvsdir_prefix/.deleted/");
+	system("chown -R root:root $cvsdir_prefix/.deleted/$deleted_group_name");
+	system("chmod -R o-rwx $cvsdir_prefix/.deleted/$deleted_group_name");
+	
+	
+	$res9 = db_query("UPDATE deleted_groups set isdeleted = 1 WHERE unix_group_name = '$deleted_group_name';" );
+	$err .= db_error();
+}
+
+
+cron_entry(25,$err);
+
+?>


Property changes on: trunk/gforge_base/evolvisforge/plugins.test/scmcvs/cronjobs/homedirs.php
___________________________________________________________________
Added: svn:executable
   + *

Added: trunk/gforge_base/evolvisforge/plugins.test/scmcvs/cronjobs/ssh_create.php
===================================================================
--- trunk/gforge_base/evolvisforge/plugins.test/scmcvs/cronjobs/ssh_create.php	                        (rev 0)
+++ trunk/gforge_base/evolvisforge/plugins.test/scmcvs/cronjobs/ssh_create.php	2010-02-26 00:19:01 UTC (rev 4850)
@@ -0,0 +1,70 @@
+#! /usr/bin/php4 -f
+<?php
+/**
+ * GForge Cron Job
+ *
+ * The rest Copyright 2002-2005 (c) GForge Team
+ * http://gforge.org/
+ *
+ * @version   $Id$
+ *
+ * This file is part of GForge.
+ *
+ * GForge 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.
+ *
+ * GForge is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with GForge; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ */
+
+require_once('squal_pre.php');
+require ('common/include/cron_utils.php');
+
+$res=db_query("SELECT user_name,user_id,authorized_keys 
+	FROM users 
+	WHERE authorized_keys != ''
+	AND status='A'");
+
+for ($i=0; $i<db_numrows($res); $i++) {
+
+
+	$ssh_key=db_result($res,$i,'authorized_keys');
+	$username=db_result($res,$i,'user_name');
+	$dir = $homedir_prefix.'/'.$username;
+	if (util_is_root_dir($dir)) {
+		$err .=  "Error! homedir_prefix/username Points To Root Directory!";
+		continue;
+	}
+	$uid=db_result($res,$i,'user_id');
+
+	$ssh_key=str_replace('###',"\n",$ssh_key);
+	$uid += 1000;
+
+	$ssh_dir = "$homedir_prefix/$username/.ssh";
+	if (!is_dir($ssh_dir)) {
+		mkdir ($ssh_dir, 0755);
+	}
+
+	$h8 = fopen("$ssh_dir/authorized_keys","w");
+	fwrite($h8,'# This file is automatically generated from your account settings.'."\n");
+	fwrite($h8,$ssh_key);
+	fclose($h8);
+		
+	system("chown $username:users $homedir_prefix/$username");
+	system("chown $username:users $ssh_dir");
+	system("chmod 0644 $ssh_dir/authorized_keys");
+	system("chown $username:users $ssh_dir/authorized_keys");
+
+}
+
+cron_entry(15,$err);
+
+?>


Property changes on: trunk/gforge_base/evolvisforge/plugins.test/scmcvs/cronjobs/ssh_create.php
___________________________________________________________________
Added: svn:executable
   + *

Added: trunk/gforge_base/evolvisforge/plugins.test/scmcvs/cronjobs/syncmail
===================================================================
--- trunk/gforge_base/evolvisforge/plugins.test/scmcvs/cronjobs/syncmail	                        (rev 0)
+++ trunk/gforge_base/evolvisforge/plugins.test/scmcvs/cronjobs/syncmail	2010-02-26 00:19:01 UTC (rev 4850)
@@ -0,0 +1,328 @@
+#! /usr/bin/python
+
+# NOTE: Until SourceForge installs a modern version of Python on the cvs
+# servers, this script MUST be compatible with Python 1.5.2.
+
+"""Complicated notification for CVS checkins.
+
+This script is used to provide email notifications of changes to the CVS
+repository.  These email changes will include context diffs of the changes.
+Really big diffs will be trimmed.
+
+This script is run from a CVS loginfo file (see $CVSROOT/CVSROOT/loginfo).  To
+set this up, create a loginfo entry that looks something like this:
+
+    mymodule /path/to/this/script %%s some-email-addr at your.domain
+
+In this example, whenever a checkin that matches `mymodule' is made, this
+script is invoked, which will generate the diff containing email, and send it
+to some-email-addr at your.domain.
+
+    Note: This module used to also do repository synchronizations via
+    rsync-over-ssh, but since the repository has been moved to SourceForge,
+    this is no longer necessary.  The syncing functionality has been ripped
+    out in the 3.0, which simplifies it considerably.  Access the 2.x versions
+    to refer to this functionality.  Because of this, the script is misnamed.
+
+It no longer makes sense to run this script from the command line.  Doing so
+will only print out this usage information.
+
+Usage:
+
+    %(PROGRAM)s [options] <%%S> email-addr [email-addr ...]
+
+Where options are:
+
+    --cvsroot=<path>
+    	Use <path> as the environment variable CVSROOT.  Otherwise this
+    	variable must exist in the environment.
+
+    --context=#
+    -C #
+        Include # lines of context around lines that differ (default: 2).
+
+    -c
+        Produce a context diff (default).
+
+    -u
+        Produce a unified diff (smaller).
+
+    --quiet / -q
+        Don't print as much status to stdout.
+
+    --fromhost=hostname
+    -f hostname
+        The hostname that email messages appear to be coming from.  The From:
+        header will of the outgoing message will look like user at hostname.  By
+        default, hostname is the machine's fully qualified domain name.
+
+    --help / -h
+        Print this text.
+
+The rest of the command line arguments are:
+
+    <%%S>
+        CVS %%s loginfo expansion.  When invoked by CVS, this will be a single
+        string containing the directory the checkin is being made in, relative
+        to $CVSROOT, followed by the list of files that are changing.  If the
+        %%s in the loginfo file is %%{sVv}, context diffs for each of the
+        modified files are included in any email messages that are generated.
+
+    email-addrs
+        At least one email address.
+"""
+import os
+import sys
+import re
+import time
+import string
+import getopt
+import smtplib
+import pwd
+import socket
+
+try:
+    from socket import getfqdn
+except ImportError:
+    def getfqdn():
+        # Python 1.5.2 :(
+        hostname = socket.gethostname()
+        byaddr = socket.gethostbyaddr(socket.gethostbyname(hostname))
+        aliases = byaddr[1]
+        aliases.insert(0, byaddr[0])
+        aliases.insert(0, hostname)
+        for fqdn in aliases:
+            if '.' in fqdn:
+                break
+        else:
+            fqdn = 'localhost.localdomain'
+        return fqdn
+    
+
+from cStringIO import StringIO
+
+# Which SMTP server to do we connect to?  Empty string means localhost.
+MAILHOST = 'localhost'
+MAILPORT = 25
+ 
+# Diff trimming stuff
+DIFF_HEAD_LINES = 20
+DIFF_TAIL_LINES = 20
+DIFF_TRUNCATE_IF_LARGER = 1000
+
+EMPTYSTRING = ''
+SPACE = ' '
+DOT = '.'
+COMMASPACE = ', '
+
+PROGRAM = sys.argv[0]
+
+BINARY_EXPLANATION_LINES = [
+    "(This appears to be a binary file; contents omitted.)\n"
+    ]
+
+REVCRE = re.compile("^(NONE|[0-9.]+)$")
+NOVERSION = "Couldn't generate diff; no version number found in filespec: %s"
+BACKSLASH = "Couldn't generate diff: backslash in filespec's filename: %s"
+
+
+
+def usage(code, msg=''):
+    print __doc__ % globals()
+    if msg:
+        print msg
+    sys.exit(code)
+
+
+
+def calculate_diff(filespec, contextlines):
+    file, oldrev, newrev = string.split(filespec, ',')
+    # Make sure we can find a CVS version number
+    if not REVCRE.match(oldrev):
+        return NOVERSION % filespec
+    if not REVCRE.match(newrev):
+        return NOVERSION % filespec
+
+    if string.find(file, '\\') <> -1:
+        # I'm sorry, a file name that contains a backslash is just too much.
+        # XXX if someone wants to figure out how to escape the backslashes in
+        # a safe way to allow filenames containing backslashes, this is the
+        # place to do it.  --Zooko 2002-03-17
+        return BACKSLASH % filespec
+
+    if string.find(file, "'") <> -1:
+        # Those crazy users put single-quotes in their file names!  Now we
+        # have to escape everything that is meaningful inside double-quotes.
+        filestr = string.replace(file, '`', '\`')
+        filestr = string.replace(filestr, '"', '\"')
+        filestr = string.replace(filestr, '$', '\$')
+        # and quote it with double-quotes.
+        filestr = '"' + filestr + '"'
+    else:
+        # quote it with single-quotes.
+        filestr = "'" + file + "'"
+    if oldrev == 'NONE':
+        try:
+            if os.path.exists(file):
+                fp = open(file)
+            else:
+                update_cmd = "cvs -fn update -r %s -p %s" % (newrev, filestr)
+                fp = os.popen(update_cmd)
+            lines = fp.readlines()
+            fp.close()
+            # Is this a binary file?  Let's look at the first few
+            # lines to figure it out:
+            for line in lines[:5]:
+                for c in string.rstrip(line):
+                    if c in string.whitespace:
+                        continue
+                    if c < ' ' or c > chr(127):
+                        lines = BINARY_EXPLANATION_LINES[:]
+                        break
+            lines.insert(0, '--- NEW FILE: %s ---\n' % file)
+        except IOError, e:
+            lines = ['***** Error reading new file: ',
+                     str(e), '\n***** file: ', file, ' cwd: ', os.getcwd()]
+    elif newrev == 'NONE':
+        lines = ['--- %s DELETED ---\n' % file]
+    else:
+        # This /has/ to happen in the background, otherwise we'll run into CVS
+        # lock contention.  What a crock.
+        if contextlines > 0:
+            difftype = "-C " + str(contextlines)
+        else:
+            difftype = "-u"
+        diffcmd = "/usr/bin/cvs -f diff -kk %s --minimal -r %s -r %s %s" \
+                  % (difftype, oldrev, newrev, filestr)
+        fp = os.popen(diffcmd)
+        lines = fp.readlines()
+        sts = fp.close()
+        # ignore the error code, it always seems to be 1 :(
+##        if sts:
+##            return 'Error code %d occurred during diff\n' % (sts >> 8)
+    if len(lines) > DIFF_TRUNCATE_IF_LARGER:
+        removedlines = len(lines) - DIFF_HEAD_LINES - DIFF_TAIL_LINES
+        del lines[DIFF_HEAD_LINES:-DIFF_TAIL_LINES]
+        lines.insert(DIFF_HEAD_LINES,
+                     '[...%d lines suppressed...]\n' % removedlines)
+    return string.join(lines, '')
+
+
+
+def blast_mail(subject, people, filestodiff, contextlines, fromhost):
+    # cannot wait for child process or that will cause parent to retain cvs
+    # lock for too long.  Urg!
+    if not os.fork():
+        # in the child
+        # give up the lock you cvs thang!
+        time.sleep(2)
+        # Create the smtp connection to the localhost
+        conn = smtplib.SMTP()
+        conn.connect(MAILHOST, MAILPORT)
+        user = pwd.getpwuid(os.getuid())[0]
+        domain = fromhost or getfqdn()
+        author = '%s@%s' % (user, domain)
+        s = StringIO()
+        sys.stdout = s
+        try:
+            print '''\
+From: %(author)s
+To: %(people)s
+Subject: %(subject)s
+''' % {'author' : author,
+       'people' : string.join(people, COMMASPACE),
+       'subject': subject,
+       }
+            s.write(sys.stdin.read())
+            # append the diffs if available
+            print
+            for file in filestodiff:
+                print calculate_diff(file, contextlines)
+        finally:
+            sys.stdout = sys.__stdout__
+        resp = conn.sendmail(author, people, s.getvalue())
+        conn.close()
+        os._exit(0)
+
+
+
+# scan args for options
+def main():
+    try:
+        opts, args = getopt.getopt(
+            sys.argv[1:], 'hC:cuqf:',
+            ['fromhost=', 'context=', 'cvsroot=', 'help', 'quiet'])
+    except getopt.error, msg:
+        usage(1, msg)
+
+    # parse the options
+    contextlines = 2
+    verbose = 1
+    fromhost = None
+    for opt, arg in opts:
+        if opt in ('-h', '--help'):
+            usage(0)
+        elif opt == '--cvsroot':
+            os.environ['CVSROOT'] = arg
+        elif opt in ('-C', '--context'):
+            contextlines = int(arg)
+        elif opt == '-c':
+            if contextlines <= 0:
+                contextlines = 2
+        elif opt == '-u':
+            contextlines = 0
+        elif opt in ('-q', '--quiet'):
+            verbose = 0
+        elif opt in ('-f', '--fromhost'):
+            fromhost = arg
+
+    # What follows is the specification containing the files that were
+    # modified.  The argument actually must be split, with the first component
+    # containing the directory the checkin is being made in, relative to
+    # $CVSROOT, followed by the list of files that are changing.
+    if not args:
+        usage(1, 'No CVS module specified')
+    subject = args[0]
+    fileargs = args[1:-1]
+    specs = []
+    specs.append(subject)
+    while len(fileargs) > 0:
+         specs.append(string.join(fileargs[:3], ','))
+         fileargs = fileargs[3:]
+
+    if not args[-1]:
+	usage(1, 'No recipients specified')
+    people = []
+    people.append(args[-1])
+
+    # The remaining args should be the email addresses
+    # Now do the mail command
+
+    if verbose:
+        print 'Mailing %s...' % string.join(people, COMMASPACE)
+
+    if specs == ['-', 'Imported', 'sources']:
+        return
+    if specs[-3:] == ['-', 'New', 'directory']:
+        del specs[-3:]
+    elif len(specs) > 2:
+        L = specs[:2]
+        for s in specs[2:]:
+            prev = L[-1]
+            if string.count(prev, ',') < 2:
+                L[-1] = "%s %s" % (prev, s)
+            else:
+                L.append(s)
+        specs = L
+
+    if verbose:
+        print 'Generating notification message...'
+    blast_mail(subject, people, specs[1:], contextlines, fromhost)
+    if verbose:
+        print 'Generating notification message... done.'
+
+
+
+if __name__ == '__main__':
+    main()
+    sys.exit(0)


Property changes on: trunk/gforge_base/evolvisforge/plugins.test/scmcvs/cronjobs/syncmail
___________________________________________________________________
Added: svn:executable
   + *

Added: trunk/gforge_base/evolvisforge/plugins.test/scmcvs/cronjobs/tarballs.php
===================================================================
--- trunk/gforge_base/evolvisforge/plugins.test/scmcvs/cronjobs/tarballs.php	                        (rev 0)
+++ trunk/gforge_base/evolvisforge/plugins.test/scmcvs/cronjobs/tarballs.php	2010-02-26 00:19:01 UTC (rev 4850)
@@ -0,0 +1,42 @@
+#! /usr/bin/php4 -f
+<?php
+
+$verbose=0;
+$scmname='scmroot';
+require ('squal_pre.php');
+require ('common/include/cron_utils.php');
+
+$sys_scm_root_path = "$sys_chroot$cvsdir_prefix";
+
+if(!isset($sys_scm_root_path)) {
+	$err = 'You have to define $cvsdir_prefix and possibly $sys_chroot variable in your config file.';
+} elseif(!isset($sys_scm_tarballs_path)) {
+	$err = 'You have to define $sys_scm_tarballs_path variable in your config file.';
+} elseif(!is_dir($sys_scm_root_path) || !is_readable($sys_scm_root_path)) {
+	$err = $sys_scm_root_path.' is not a directory or is not readable.';
+} elseif(!is_dir($sys_scm_tarballs_path) || !is_writable($sys_scm_tarballs_path)) {
+	$err = $sys_scm_tarballs_path.' is not a directory or is not writable.';
+} else {
+	if ($handle = opendir($sys_scm_root_path)) {
+		chdir($sys_scm_root_path);
+		if ($verbose) echo "Scanning $sys_scm_root_path\n";
+		while (false !== ($file = readdir($handle))) {
+			if ($file != "." && $file != ".." && is_dir($file) && $file != "cvs-locks") {
+				if ($verbose) echo "Creating $sys_scm_tarballs_path/$file-$scmname.tar.gz\n";
+				exec("tar czf $sys_scm_tarballs_path/$file-$scmname.tar.gz.new $file 2>&1", $output);
+				if (is_file("$sys_scm_tarballs_path/$file-$scmname.tar.gz.new")){
+					rename("$sys_scm_tarballs_path/$file-$scmname.tar.gz.new","$sys_scm_tarballs_path/$file-$scmname.tar.gz");
+				}
+			}
+		}
+		closedir($handle);
+	}
+	$err = implode("\n", $output);
+	if(empty($err)) {
+		$err = 'SCM tarballs generated';
+	}
+}
+
+cron_entry(19, $err);
+
+?>


Property changes on: trunk/gforge_base/evolvisforge/plugins.test/scmcvs/cronjobs/tarballs.php
___________________________________________________________________
Added: svn:executable
   + *

Added: trunk/gforge_base/evolvisforge/plugins.test/scmcvs/cronjobs/usergroup.php
===================================================================
--- trunk/gforge_base/evolvisforge/plugins.test/scmcvs/cronjobs/usergroup.php	                        (rev 0)
+++ trunk/gforge_base/evolvisforge/plugins.test/scmcvs/cronjobs/usergroup.php	2010-02-26 00:19:01 UTC (rev 4850)
@@ -0,0 +1,291 @@
+#! /usr/bin/php4 -f
+<?php
+/**
+ * GForge Cron Job
+ *
+ * The rest Copyright 2002-2005 (c) GForge Team
+ * http://gforge.org/
+ *
+ * @version   $Id$
+ *
+ * This file is part of GForge.
+ *
+ * GForge 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.
+ *
+ * GForge is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with GForge; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ */
+
+/*
+This file creates user / group permissions by editing 
+the /etc/passwd /etc/shadow and /etc/group files
+*/
+require_once('squal_pre.php');
+require ('common/include/cron_utils.php');
+
+//
+//	Default values for the script
+//
+define('DEFAULT_SHELL','/bin/cvssh.pl'); //use /bin/grap for cvs-only
+define('FILE_EXTENSION','.new'); // use .new when testing
+
+if (util_is_root_dir($groupdir_prefix)) {
+	$err .=  "Error! groupdir_prefix Points To Root Directory!";
+	echo $err;
+	cron_entry(16,$err);
+	exit;
+}
+
+//
+//	Get the users' unix_name and password out of the database
+//   ONLY USERS WITH CVS READ AND COMMIT PRIVS ARE ADDED
+//
+$res = db_query("SELECT distinct users.user_name,users.unix_pw,users.unix_uid,users.unix_gid,users.user_id
+	FROM users,user_group,groups
+	WHERE users.user_id=user_group.user_id 
+	AND user_group.group_id=groups.group_id
+	AND groups.status='A'
+	AND user_group.cvs_flags IN ('0','1')
+	AND users.status='A'
+	ORDER BY users.user_id ASC");
+$err .= db_error();
+
+$gforge_users    =& util_result_column_to_array($res,'user_name');
+$user_unix_uids =& util_result_column_to_array($res,'unix_uid');
+$user_unix_gids =& util_result_column_to_array($res,'unix_gid');
+$user_pws =& util_result_column_to_array($res,'unix_pw');
+
+// Create the entries for the GForge users
+$gforge_lines = array();
+
+// user description is something like "MyGForge user"
+$user_description = preg_replace('/[^[:alnum:] -_]/', '', $sys_name);
+$user_description .= " user";
+
+for ($i=0; $i < count($gforge_users); $i++) {
+	$username = $gforge_users[$i];
+	$user_unix_uid = $user_unix_uids[$i];
+	$user_unix_gid = $user_unix_gids[$i];
+	$shell = DEFAULT_SHELL;
+	$unix_passwd = $user_pws[$i];
+	
+	$line_passwd =	$username.":x:".$user_unix_uid.":".$user_unix_gid.":".
+					$user_description.":/home/".$username.":".$shell;
+	$line_shadow = $username.":".$unix_passwd.":12090:0:99999:7:::";
+	
+	$gforge_lines_passwd[] = $line_passwd;
+	$gforge_lines_shadow[] = $line_shadow;
+	
+}
+
+/*************************************************************************
+ * Step 1: Process /etc/passwd
+ *************************************************************************/
+
+// Read the passwd file line by line
+$passwd_orig = file("/etc/passwd", "r");
+
+// Now write the file with the gforge users at the end
+$passwd = fopen("/etc/passwd".FILE_EXTENSION, "w");
+$unmanaged_etc = array();
+for ($i=0; $i < count($passwd_orig); $i++) {
+	$line = trim($passwd_orig[$i]);
+	// Skip the GForge users (will be written later)
+	if (preg_match("/^[[:blank:]]*#GFORGEBEGIN/", $line)) {
+		do {
+			$i++;
+			$line = trim($passwd_orig[$i]);
+		} while ($i < count($passwd_orig) && !preg_match("/^[[:blank:]]*#GFORGEEND/", $line));
+		
+		// Got to end of file (shouldn't happen, means #GFORGEEND wasn't found on file
+		if ($i >= (count($passwd_orig)-1)) break;
+		
+		// read next line
+		$i++;
+		$line = trim($passwd_orig[$i]);
+	}
+	
+	$entries = explode(":", $line);
+	if (!empty($entries[0])) {
+		$username = $entries[0];
+		$unmanaged_etc[] = $username;
+		fwrite($passwd, $line."\n");
+	} else {
+		// blank line or comment
+		fwrite($passwd, $line."\n");
+	}
+}
+
+/*************************************************************************
+ * Step 2: Process /etc/shadow
+ *************************************************************************/
+
+// Read the shadow file line by line
+$passwd_orig = file("/etc/shadow", "r");
+
+// Now write the file with the gforge users at the end
+$shadow = fopen("/etc/shadow".FILE_EXTENSION, "w");
+$unmanaged_shadow = array();
+for ($i=0; $i < count($passwd_orig); $i++) {
+	$line = trim($passwd_orig[$i]);
+	// Skip the GForge users (will be written later)
+	if (preg_match("/^[[:blank:]]*#GFORGEBEGIN/", $line)) {
+		do {
+			$i++;
+			$line = trim($passwd_orig[$i]);
+		} while ($i < count($passwd_orig) && !preg_match("/^[[:blank:]]*#GFORGEEND/", $line));
+		
+		// Got to end of file (shouldn't happen, means #GFORGEEND wasn't found on file
+		if ($i >= (count($passwd_orig)-1)) break;
+		
+		// read next line
+		$i++;
+		$line = trim($passwd_orig[$i]);
+	}
+	
+	$entries = explode(":", $line);
+	if (!empty($entries[0])) {
+		$username = $entries[0];
+		$unmanaged_shadow[] = $username;
+		fwrite($shadow, $line."\n");
+	} else {
+		// blank line or comment
+		fwrite($shadow, $line."\n");
+	}
+}
+
+
+/*************************************************************************
+ * Step 3: Write the GForge users to /etc/passwd and /etc/shadow
+ *************************************************************************/
+
+// now write the GForge users
+fwrite($passwd, "#GFORGEBEGIN\n");
+fwrite($shadow, "#GFORGEBEGIN\n");
+assert(count($gforge_lines_passwd) == count($gforge_lines_shadow));
+for ($i=0; $i < count($gforge_lines_passwd); $i++) {
+	$line_passwd = $gforge_lines_passwd[$i];
+	$line_shadow = $gforge_lines_shadow[$i];
+	
+	
+	$entries = explode(":", $line_passwd);
+	$username = $entries[0];
+	if (!in_array($username, $unmanaged_etc)) {
+		// Only write the user if it must be managed by gforge (that is, if it's a new
+		// user or it was found inside the #GFORGE markers).
+		fwrite($passwd, $line_passwd."\n");
+	}
+	
+	$entries = explode(":", $line_shadow);
+	$username = $entries[0];
+	if (!in_array($username, $unmanaged_shadow)) {
+		fwrite($shadow, $line_shadow."\n");
+	}
+}
+fwrite($passwd, "#GFORGEEND\n");
+fwrite($shadow, "#GFORGEEND\n");
+
+
+fclose($passwd);
+fclose($shadow);
+
+/*************************************************************************
+ * Step 4: Parse /etc/group
+ *************************************************************************/
+$group_orig = file("/etc/group");
+$group = fopen("/etc/group".FILE_EXTENSION, "w");
+
+//	Add the groups from the gforge database
+$group_res = db_query("SELECT group_id, unix_group_name, unix_gid, (is_public=1 AND enable_anonscm=1 AND type_id=1) AS enable_pserver FROM groups WHERE status='A' AND type_id='1'");
+$err .= db_error();
+for($i = 0; $i < db_numrows($group_res); $i++) {
+    $gforge_groups[] = db_result($group_res,$i,'unix_group_name');
+    $gids[db_result($group_res,$i,'unix_group_name')] = db_result($group_res,$i,'unix_gid');
+}
+
+for ($i=0; $i < count($group_orig); $i++) {
+	$line = trim($group_orig[$i]);
+	// Skip the GForge groups (will be written later)
+	if (preg_match("/^[[:blank:]]*#GFORGEBEGIN/", $line)) {
+		do {
+			$i++;
+			$line = trim($passwd_orig[$i]);
+		} while ($i < count($passwd_orig) && !preg_match("/^[[:blank:]]*#GFORGEEND/", $line));
+		
+		// Got to end of file (shouldn't happen, means #GFORGEEND wasn't found on file
+		if ($i >= (count($passwd_orig)-1)) break;
+		
+		// read next line
+		$i++;
+		$line = trim($passwd_orig[$i]);
+	}
+	
+	$entries = explode(":", $line);
+	if (!empty($entries[0])) {
+		$groupname = $entries[0];
+		if (!in_array($groupname, $gforge_groups)) {
+			// write the user only if it's not a gforge user
+			fwrite($group, $line."\n");
+		}
+	} else {
+		// blank line or comment
+		fwrite($group, $line."\n");
+	}
+}
+
+// Now write the GForge groups
+// Note that we FORCE the GForge groups to be managed by GForge. This is different than the
+// users, where the administrator could move a user outside the #GFORGE markers and manually
+// manage the user. This is done because we must add the users to the group, and for this we
+// must manage them.
+fwrite($group, "#GFORGEBEGIN\n");
+
+for ($i = 0; $i < count($gforge_groups); $i++) {
+	$group_name = $gforge_groups[$i];
+	$unix_gid = $gids[$group_name];
+	
+	$line = $group_name.":x:".$unix_gid.":";
+	
+	/* we need to get the project object to check if a project
+	 * has a private CVS repository - in which case we need to add
+	 * the apache user to the group so that ViewCVS can be used
+	 */
+	 
+	$group_id = db_result($group_res, $i, 'group_id');
+	$project = &group_get_object($group_id);
+	$enable_pserver = (db_result($group_res, $i, 'enable_pserver') == 't');	
+
+	$resusers = db_query("SELECT user_name 
+		FROM users,user_group,groups 
+		WHERE groups.group_id=user_group.group_id 
+		AND users.user_id=user_group.user_id
+		AND user_group.cvs_flags IN ('0','1')
+		AND users.status='A'
+		AND groups.unix_group_name='".$group_name."'");
+	$gmembers = util_result_column_to_array($resusers,'user_name');
+	if ($enable_pserver) $gmembers[] = 'anonymous';
+	if (!$project->enableAnonSCM()) {
+		$gmembers[] = $sys_apache_user;
+	}
+	
+	$line .= implode(',', $gmembers);
+	
+	fwrite($group, $line."\n");
+		
+}
+
+fwrite($group, "#GFORGEEND\n");
+fclose($group);
+
+cron_entry(16,$err);
+
+?>


Property changes on: trunk/gforge_base/evolvisforge/plugins.test/scmcvs/cronjobs/usergroup.php
___________________________________________________________________
Added: svn:executable
   + *

Added: trunk/gforge_base/evolvisforge/plugins.test/scmcvs/cronjobs/www/index.php
===================================================================
--- trunk/gforge_base/evolvisforge/plugins.test/scmcvs/cronjobs/www/index.php	                        (rev 0)
+++ trunk/gforge_base/evolvisforge/plugins.test/scmcvs/cronjobs/www/index.php	2010-02-26 00:19:01 UTC (rev 4850)
@@ -0,0 +1,2 @@
+<h1> Welcome to CVS... </h1>
+

Added: trunk/gforge_base/evolvisforge/plugins.test/scmcvs/db/scmcvs-init.sql
===================================================================
--- trunk/gforge_base/evolvisforge/plugins.test/scmcvs/db/scmcvs-init.sql	                        (rev 0)
+++ trunk/gforge_base/evolvisforge/plugins.test/scmcvs/db/scmcvs-init.sql	2010-02-26 00:19:01 UTC (rev 4850)
@@ -0,0 +1,4 @@
+DROP SEQUENCE plugin_scmcvs_grp_usage_pk_seq;
+DROP SEQUENCE plugin_scmcvs_stats_pk_seq;
+DROP TABLE plugin_scmcvs_group_usage;
+DROP TABLE plugin_scmcvs_stats;

Added: trunk/gforge_base/evolvisforge/plugins.test/scmcvs/debian/README.Debian
===================================================================
--- trunk/gforge_base/evolvisforge/plugins.test/scmcvs/debian/README.Debian	                        (rev 0)
+++ trunk/gforge_base/evolvisforge/plugins.test/scmcvs/debian/README.Debian	2010-02-26 00:19:01 UTC (rev 4850)
@@ -0,0 +1,8 @@
+gforge-plugin-scmcvs for Debian
+-------------------------------
+
+This plugin holds the CVS stuff.  It is intended as both a proof of
+concept (that the CVS code could be separated from the core code) and
+as a first step towards choice of SCM systems.
+
+ -- Roland Mas <lolando at debian.org>, Sat Feb 21 15:31:21 2004

Added: trunk/gforge_base/evolvisforge/plugins.test/scmcvs/debian/changelog
===================================================================
--- trunk/gforge_base/evolvisforge/plugins.test/scmcvs/debian/changelog	                        (rev 0)
+++ trunk/gforge_base/evolvisforge/plugins.test/scmcvs/debian/changelog	2010-02-26 00:19:01 UTC (rev 4850)
@@ -0,0 +1,108 @@
+gforge-plugin-scmcvs (4.5.14-4) unstable; urgency=low
+
+  * [Roland] Removed cvs.$hostname virtualhosts from Apache configuration,
+    since they weren't used for anything (closes: #375345).
+
+ -- Roland Mas <lolando at debian.org>  Fri, 18 Aug 2006 13:47:50 +0200
+
+gforge-plugin-scmcvs (4.5.14-3) unstable; urgency=low
+
+  * [Roland] Upload to unstable (closes: #374385).
+
+ -- Roland Mas <lolando at debian.org>  Sat, 22 Jul 2006 16:59:07 +0200
+
+gforge-plugin-scmcvs (4.5.14-2) experimental; urgency=low
+
+  * [Roland] Made the cron jobs silent (closes: #374385).
+
+ -- Roland Mas <lolando at debian.org>  Mon, 19 Jun 2006 16:22:09 +0200
+
+gforge-plugin-scmcvs (4.5.14-1) experimental; urgency=low
+
+  * [Roland] Updated for Gforge 4.5.14.
+
+ -- Roland Mas <lolando at debian.org>  Mon,  5 Jun 2006 18:20:32 +0200
+
+gforge-plugin-scmcvs (4.5.6-1) unstable; urgency=low
+
+  * New Upstream version
+
+ -- Christian Bayle <bayle at debian.org>  Sun, 29 Jan 2006 20:09:50 +0100
+
+gforge-plugin-scmcvs (4.5.3-5) stable; urgency=low
+
+  * New Upstream version, compile for sarge
+
+ -- Christian Bayle <bayle at debian.org>  Tue,  6 Dec 2005 22:13:46 +0100
+
+gforge-plugin-scmcvs (4.5.3-4) stable; urgency=low
+
+  * [olivier] Add hooks for dpatch
+  * [olivier] Corrected problem with cvsroot in cvs_update.pl
+
+ -- Christian Bayle <bayle at debian.org>  Sun, 13 Nov 2005 18:26:26 +0100
+
+gforge-plugin-scmcvs (4.5-3) unstable; urgency=low
+
+  * [Christian] New version in the branch 
+
+ -- Christian Bayle <bayle at debian.org>  Tue,  6 Sep 2005 00:58:53 +0200
+
+gforge-plugin-scmcvs (4.5-1) unstable; urgency=low
+
+  * [Roland] Remove .arch-ids directories at build time, too.
+
+ -- Roland Mas <lolando at debian.org>  Sun,  7 Aug 2005 17:29:30 +0200
+
+gforge-plugin-scmcvs (4.1-9) unstable; urgency=low
+
+  * [Christian] Version taking in account nss
+  * [Christian] Make cvs_dump.pl script select only groups that use
+  scmcvs plugin
+  * [Christian] Now uses tarball.php and removed tarball.sh
+  * [Mathieu] Link to snapshots added
+
+ -- Christian Bayle <bayle at debian.org>  Sun, 20 Feb 2005 20:24:58 +0100
+
+gforge-plugin-scmcvs (4.0.2-1) unstable; urgency=low
+
+  * [Christian] Align version with gforge
+
+ -- Christian Bayle <bayle at debian.org>  Mon, 24 Jan 2005 23:32:10 +0100
+
+gforge-plugin-scmcvs (0.1-22) unstable; urgency=low
+
+  * Added dependency on cvs.
+  * Added missing dirs.
+
+ -- Christian Bayle <bayle at debian.org>  Sun, 16 Jan 2005 00:55:10 +0100
+
+gforge-plugin-scmcvs (0.1-21) unstable; urgency=low
+
+  * Added /var/log/gforge/cvs to prevent postinst from breaking.
+
+ -- Roland Mas <lolando at debian.org>  Sat, 23 Oct 2004 17:29:32 +0200
+
+gforge-plugin-scmcvs (0.1-20) unstable; urgency=low
+
+  * CVS Tab is now commented
+  * Splitted cvs_dump_update.pl in cvs_dump.pl and cvs_update.pl
+
+ -- Christian Bayle <bayle at debian.org>  Mon, 11 Oct 2004 16:21:40 +0200
+
+gforge-plugin-scmcvs (0.1-13) unstable; urgency=low
+
+  * Removed cvssh that collide with gforge version and is not really cvs
+    specific
+  * Added CVS Tab using groupmenu_scm hook
+  * Make that the project cvs tab is well selected
+  * Added dependency on libipc-signal-perl
+
+ -- Christian Bayle <bayle at debian.org>  Thu, 29 Jul 2004 16:41:43 +0200
+
+gforge-plugin-scmcvs (0.1-1) unstable; urgency=low
+
+  * Initial packaging.
+
+ -- Christian Bayle <bayle at debian.org>  Fri,  9 Jul 2004 12:11:49 +0200
+

Added: trunk/gforge_base/evolvisforge/plugins.test/scmcvs/debian/control
===================================================================
--- trunk/gforge_base/evolvisforge/plugins.test/scmcvs/debian/control	                        (rev 0)
+++ trunk/gforge_base/evolvisforge/plugins.test/scmcvs/debian/control	2010-02-26 00:19:01 UTC (rev 4850)
@@ -0,0 +1,15 @@
+Source: gforge-plugin-scmcvs
+Section: devel
+Priority: optional
+Maintainer: Roland Mas <lolando at debian.org>
+Uploaders: Christian Bayle <bayle at debian.org>
+Build-Depends: debhelper (>> 4.0.0), dpatch
+Standards-Version: 3.7.2
+
+Package: gforge-plugin-scmcvs
+Architecture: all
+Depends: gforge-common, gforge-db-postgresql | gforge-db, gforge-web-apache | gforge-web, libipc-run-perl, rcs, liburi-perl, cvs, php4-cli, python
+Description: cvs plugin for GForge
+ This plug-in contains the CVS subsystem of Gforge.  It allows each
+ Gforge project to have its own CVS repository, and gives some control
+ over it to the project's administrator.

Added: trunk/gforge_base/evolvisforge/plugins.test/scmcvs/debian/copyright
===================================================================
--- trunk/gforge_base/evolvisforge/plugins.test/scmcvs/debian/copyright	                        (rev 0)
+++ trunk/gforge_base/evolvisforge/plugins.test/scmcvs/debian/copyright	2010-02-26 00:19:01 UTC (rev 4850)
@@ -0,0 +1,27 @@
+This package was debianized by Roland Mas <lolando at debian.org> on
+Sat, 21 Feb 2004 15:26:54 +0100.
+
+It was downloaded from <http://gforge.org/>
+
+Upstream Author: Roland Mas <lolando at debian.org>, but the code is
+derived from Gforge code, which was itself a derivative of the
+Sourceforge code, which was copyright VA Linux Systems.
+
+Copyright:
+
+   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; version 2 dated June, 1991.
+
+   This package is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this package; if not, write to the Free Software
+   Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+   02111-1307, USA.
+
+On Debian GNU/Linux systems, the complete text of the GNU General
+Public License can be found in `/usr/share/common-licenses/GPL'.

Added: trunk/gforge_base/evolvisforge/plugins.test/scmcvs/debian/cron.d
===================================================================
--- trunk/gforge_base/evolvisforge/plugins.test/scmcvs/debian/cron.d	                        (rev 0)
+++ trunk/gforge_base/evolvisforge/plugins.test/scmcvs/debian/cron.d	2010-02-26 00:19:01 UTC (rev 4850)
@@ -0,0 +1,15 @@
+#
+# Regular cron jobs for the gforge-plugin-scmcvs package
+#
+
+# Tarballs
+5 2 * * * root [ -x /usr/lib/gforge/plugins/scmcvs/cronjobs/tarballs.php ] && php -d include_path=/etc/gforge:/usr/share/gforge/:/usr/share/gforge/www/include /usr/lib/gforge/plugins/scmcvs/cronjobs/tarballs.php > /dev/null 2>&1
+
+# Snapshots
+35 2 * * * root [ -x /usr/lib/gforge/plugins/scmcvs/bin/snapshots.sh ] && /usr/lib/gforge/plugins/scmcvs/bin/snapshots.sh generate
+
+# Repositories update
+5 * * * * root [ -x /usr/lib/gforge/plugins/scmcvs/bin/cvs_dump.pl ] && su -s /bin/sh gforge -c /usr/lib/gforge/plugins/scmcvs/bin/cvs_dump.pl && [ -x /usr/lib/gforge/plugins/scmcvs/bin/cvs_update.pl ] && /usr/lib/gforge/plugins/scmcvs/bin/cvs_update.pl
+
+# CVS add/commit Statistics
+45 4 * * * root [ -x /usr/lib/gforge/plugins/scmcvs/bin/stats_cvs.pl ] && /usr/lib/gforge/plugins/scmcvs/bin/stats_cvs.pl > /dev/null 2>&1

Added: trunk/gforge_base/evolvisforge/plugins.test/scmcvs/debian/dirs
===================================================================
--- trunk/gforge_base/evolvisforge/plugins.test/scmcvs/debian/dirs	                        (rev 0)
+++ trunk/gforge_base/evolvisforge/plugins.test/scmcvs/debian/dirs	2010-02-26 00:19:01 UTC (rev 4850)
@@ -0,0 +1,30 @@
+bin
+etc
+etc/gforge
+etc/gforge/httpd.d
+etc/gforge/plugins
+etc/gforge/plugins/scmcvs
+usr
+usr/lib
+usr/lib/gforge
+usr/lib/gforge/bin
+usr/lib/gforge/plugins/
+usr/lib/gforge/plugins/scmcvs
+usr/lib/gforge/plugins/scmcvs/bin
+usr/lib/gforge/plugins/scmcvs/cgi-bin
+usr/lib/gforge/plugins/scmcvs/include
+usr/lib/gforge/plugins/scmcvs/lib
+usr/lib/gforge/plugins/scmcvs/cronjobs
+usr/lib/gforge/cgi-bin/plugins/scmcvs
+usr/share
+usr/share/gforge
+usr/share/gforge/etc
+usr/share/gforge/etc/httpd.d
+usr/share/gforge/www
+usr/share/gforge/www/plugins
+usr/share/gforge/www/plugins/scmcvs
+usr/share/gforge/scm
+var
+var/log
+var/log/gforge
+var/log/gforge/cvs

Added: trunk/gforge_base/evolvisforge/plugins.test/scmcvs/debian/patches/00list
===================================================================
--- trunk/gforge_base/evolvisforge/plugins.test/scmcvs/debian/patches/00list	                        (rev 0)
+++ trunk/gforge_base/evolvisforge/plugins.test/scmcvs/debian/patches/00list	2010-02-26 00:19:01 UTC (rev 4850)
@@ -0,0 +1,2 @@
+# List of patches to apply
+#01_fix_cvsroot_lockdir.dpatch

Added: trunk/gforge_base/evolvisforge/plugins.test/scmcvs/debian/patches/01_fix_cvsroot_lockdir.dpatch
===================================================================
--- trunk/gforge_base/evolvisforge/plugins.test/scmcvs/debian/patches/01_fix_cvsroot_lockdir.dpatch	                        (rev 0)
+++ trunk/gforge_base/evolvisforge/plugins.test/scmcvs/debian/patches/01_fix_cvsroot_lockdir.dpatch	2010-02-26 00:19:01 UTC (rev 4850)
@@ -0,0 +1,38 @@
+#! /bin/sh /usr/share/dpatch/dpatch-run
+## 01_fix_cvsroot_lockdir.dpatch by  <ofourdan at gforge.aec>
+##
+## All lines beginning with `## DP:' are a description of the patch.
+## DP: Transiciel patches for Topcased/GForge
+
+ at DPATCH@
+
+diff -Naur gforge-plugin-scmcvs-4.5.3/bin/cvs_update.pl gforge-plugin-scmcvs-4.5.3-3-fix/bin/cvs_update.pl
+--- gforge-plugin-scmcvs-4.5.3/bin/cvs_update.pl	2005-11-16 11:52:32.200846424 +0100
++++ gforge-plugin-scmcvs-4.5.3-3-fix/bin/cvs_update.pl	2005-11-16 11:54:05.135718176 +0100
+@@ -37,7 +37,7 @@
+ 	# This 50000 is really dirty until I change this file completly
+ 	$cvs_gid = $group_id + $anoncvs_uid_add;
+ 	$cvs_dir = "$cvs_root/$group_name";
+-
++print "cvs_root=$cvs_root, cvs_dir=$cvs_dir\n";
+ 	$userlist =~ tr/A-Z/a-z/;
+ 
+ 	#$group_exists = (-d $grpdir_prefix/$group_name);
+@@ -121,7 +121,7 @@
+ 			if($verbose) { print("Enable pserver for $group_name:\t$userlist in $cvs_dir/CVSROOT/writers \n"); }
+ 			open (CONFIG,">$cvs_dir/CVSROOT/config");
+ 			print CONFIG "SystemAuth=yes\n";
+-			print CONFIG "LockDir=/cvsroot/cvs-locks/$group_name\n";
++			print CONFIG "LockDir=$cvs_root/cvs-locks/$group_name\n";
+ 			close CONFIG;
+ 		} else {
+ 			# turn off pserver writers
+@@ -132,7 +132,7 @@
+ 			if($verbose) { print("Disable pserver for $group_name\n"); }
+ 			open (CONFIG,">$cvs_dir/CVSROOT/config");
+ 			print CONFIG "SystemAuth=no\n";
+-			print CONFIG "LockDir=/cvsroot/cvs-locks/$group_name\n";
++			print CONFIG "LockDir=$cvs_root/cvs-locks/$group_name\n";
+ 			close CONFIG;
+ 		}
+ 


Property changes on: trunk/gforge_base/evolvisforge/plugins.test/scmcvs/debian/patches/01_fix_cvsroot_lockdir.dpatch
___________________________________________________________________
Added: svn:executable
   + *

Added: trunk/gforge_base/evolvisforge/plugins.test/scmcvs/debian/postinst
===================================================================
--- trunk/gforge_base/evolvisforge/plugins.test/scmcvs/debian/postinst	                        (rev 0)
+++ trunk/gforge_base/evolvisforge/plugins.test/scmcvs/debian/postinst	2010-02-26 00:19:01 UTC (rev 4850)
@@ -0,0 +1,79 @@
+#! /bin/sh
+# postinst script for gforge-plugin-scmcvs
+#
+# see: dh_installdeb(1)
+
+set -e
+
+# summary of how this script can be called:
+#        * <postinst> `configure' <most-recently-configured-version>
+#        * <old-postinst> `abort-upgrade' <new version>
+#        * <conflictor's-postinst> `abort-remove' `in-favour' <package>
+#          <new-version>
+#        * <deconfigured's-postinst> `abort-deconfigure' `in-favour'
+#          <failed-install-package> <version> `removing'
+#          <conflicting-package> <version>
+# for details, see http://www.debian.org/doc/debian-policy/ or
+# the debian-policy package
+#
+# quoting from the policy:
+#     Any necessary prompting should almost always be confined to the
+#     post-installation script, and should be protected with a conditional
+#     so that unnecessary prompting doesn't happen if a package's
+#     installation fails and the `postinst' is called with `abort-upgrade',
+#     `abort-remove' or `abort-deconfigure'.
+
+case "$1" in
+    configure)
+	/usr/sbin/gforge-config
+
+	# Prepare database
+	su -s /bin/sh gforge -c /usr/lib/gforge/plugins/scmcvs/bin/db-upgrade.pl
+	su -s /bin/sh gforge -c '/usr/lib/gforge/bin/register-plugin scmcvs "CVS"'
+	test -f /etc/default/apache2 && . /etc/default/apache2
+	if [ "$NO_START" != "0" ]; then
+		if [ -x /usr/sbin/apache ]; then
+			/usr/sbin/invoke-rc.d --quiet apache reload
+		fi
+	else
+		if [ -x /usr/sbin/apache2 ]; then
+			/usr/sbin/invoke-rc.d --quiet apache2 reload
+		fi
+	fi
+        # Setup our CVS
+	/usr/lib/gforge/plugins/scmcvs/bin/install-cvs.sh configure
+
+	# Making user group and cvs update from database 
+	/usr/lib/gforge/bin/update-user-group-cvs.sh
+	rm -f /var/lib/gforge/dumps/*cvs*dump
+	su -s /bin/sh gforge -c /usr/lib/gforge/plugins/scmcvs/bin/cvs_dump.pl
+	/usr/lib/gforge/plugins/scmcvs/bin/cvs_update.pl
+
+	# logs
+	chown root:gforge /var/log/gforge/cvs
+	chmod 775 /var/log/gforge/cvs
+
+	# Restart some services
+	[ -d /etc/ssh ] && invoke-rc.d ssh restart || true
+	[ -d /etc/ssh-nonfree ] && invoke-rc.d ssh-nonfree restart || true
+	
+    ;;
+
+    abort-upgrade|abort-remove|abort-deconfigure)
+
+    ;;
+
+    *)
+        echo "postinst called with unknown argument \`$1'" >&2
+        exit 1
+    ;;
+esac
+
+# dh_installdeb will replace this with shell code automatically
+# generated by other debhelper scripts.
+
+#DEBHELPER#
+
+exit 0
+
+

Added: trunk/gforge_base/evolvisforge/plugins.test/scmcvs/debian/prerm
===================================================================
--- trunk/gforge_base/evolvisforge/plugins.test/scmcvs/debian/prerm	                        (rev 0)
+++ trunk/gforge_base/evolvisforge/plugins.test/scmcvs/debian/prerm	2010-02-26 00:19:01 UTC (rev 4850)
@@ -0,0 +1,51 @@
+#! /bin/sh
+# prerm script for gforge-plugin-scmcvs
+#
+# see: dh_installdeb(1)
+set -e
+
+#DEBHELPER#
+
+# summary of how this script can be called:
+#        * <prerm> `remove'
+#        * <old-prerm> `upgrade' <new-version>
+#        * <new-prerm> `failed-upgrade' <old-version>
+#        * <conflictor's-prerm> `remove' `in-favour' <package> <new-version>
+#        * <deconfigured's-prerm> `deconfigure' `in-favour'
+#          <package-being-installed> <version> `removing'
+#          <conflicting-package> <version>
+# for details, see http://www.debian.org/doc/debian-policy/ or
+# the debian-policy package
+
+
+case "$1" in
+    remove|deconfigure)
+	/usr/lib/gforge/bin/unregister-plugin scmcvs
+	test -f /etc/default/apache2 && . /etc/default/apache2
+	if [ "$NO_START" != "0" ]; then
+		if [ -x /usr/sbin/apache ]; then
+			/usr/sbin/invoke-rc.d --quiet apache reload
+		fi
+	else
+		if [ -x /usr/sbin/apache2 ]; then
+			/usr/sbin/invoke-rc.d --quiet apache2 reload
+		fi
+	fi
+	/usr/lib/gforge/plugins/scmcvs/bin/db-delete.pl
+        ;;
+    upgrade|failed-upgrade)
+        ;;
+    *)
+        echo "prerm called with unknown argument \`$1'" >&2
+        exit 1
+    ;;
+esac
+
+# dh_installdeb will replace this with shell code automatically
+# generated by other debhelper scripts.
+
+
+
+exit 0
+
+

Added: trunk/gforge_base/evolvisforge/plugins.test/scmcvs/debian/rules
===================================================================
--- trunk/gforge_base/evolvisforge/plugins.test/scmcvs/debian/rules	                        (rev 0)
+++ trunk/gforge_base/evolvisforge/plugins.test/scmcvs/debian/rules	2010-02-26 00:19:01 UTC (rev 4850)
@@ -0,0 +1,92 @@
+#!/usr/bin/make -f
+# Sample debian/rules that uses debhelper.
+# GNU copyright 1997 to 1999 by Joey Hess.
+
+# Uncomment this to turn on verbose mode.
+#export DH_VERBOSE=1
+
+# This is the debhelper compatibility version to use.
+export DH_COMPAT=4
+
+export PLUGIN=scmcvs
+include /usr/share/dpatch/dpatch.make
+
+configure: configure-stamp
+configure-stamp:
+	dh_testdir
+	# Add here commands to configure the package.
+	touch configure-stamp
+
+build: configure-stamp build-stamp
+build-stamp: patch-stamp
+	dh_testdir
+	touch build-stamp
+
+clean: unpatch
+	dh_testdir
+	dh_testroot
+	rm -f build-stamp configure-stamp
+	dh_clean
+
+DESTDIR=$(CURDIR)/debian/gforge-plugin-$(PLUGIN)
+
+install: build
+	dh_testdir
+	dh_testroot
+	dh_clean -k
+	dh_installdirs
+
+	cp -r bin/* $(DESTDIR)/usr/lib/gforge/plugins/$(PLUGIN)/bin/
+#	cp -r include/* $(DESTDIR)/usr/lib/gforge/plugins/$(PLUGIN)/include/
+#	cp -r lib/* $(DESTDIR)/usr/lib/gforge/plugins/$(PLUGIN)/lib/
+	cp -r cronjobs/* $(DESTDIR)/usr/lib/gforge/plugins/$(PLUGIN)/cronjobs/
+	cp cgi-bin/cvsweb $(DESTDIR)/usr/lib/gforge/bin/
+	chmod 0755 $(DESTDIR)/usr/lib/gforge/bin/cvsweb
+	cp -r etc/httpd.d $(DESTDIR)/usr/share/gforge/etc/
+	rm $(DESTDIR)/usr/share/gforge/etc/httpd.d/30virtualcvs
+	rm $(DESTDIR)/usr/share/gforge/etc/httpd.d/31virtualcvs.ssl
+	cp -r etc/plugins $(DESTDIR)/etc/gforge/
+	cp -r www/* $(DESTDIR)/usr/share/gforge/www/plugins/$(PLUGIN)/
+	find $(DESTDIR)/usr/lib/gforge/plugins/$(PLUGIN)/bin/ -type f | xargs chmod 0755
+#	find $(DESTDIR)/usr/lib/gforge/plugins/$(PLUGIN)/include/ -type f | xargs chmod 0644
+#	find $(DESTDIR)/usr/lib/gforge/plugins/$(PLUGIN)/lib/ -type f | xargs chmod 0644
+	find $(DESTDIR)/usr/share/gforge/www/plugins/$(PLUGIN)/ -type f | xargs chmod 0644
+	# clean CVS/baz dir
+	find $(DESTDIR)/ -type d -name CVS -or -name .arch-ids | xargs rm -rf
+
+# Build architecture-independent files here.
+binary-indep: build install
+# We have nothing to do by default.
+
+# Build architecture-dependent files here.
+binary-arch: build install
+	dh_testdir
+	dh_testroot
+#	dh_installdebconf
+	dh_installdocs
+	dh_installexamples
+	dh_installmenu
+#	dh_installlogrotate
+#	dh_installemacsen
+#	dh_installpam
+#	dh_installmime
+#	dh_installinit
+	dh_installcron
+	dh_installman
+	dh_installinfo
+#	dh_undocumented
+	dh_installchangelogs 
+	dh_link
+	dh_strip
+	dh_compress
+	dh_fixperms
+#	dh_makeshlibs
+	dh_installdeb
+#	dh_perl
+	dh_shlibdeps
+	dh_gencontrol
+	dh_md5sums
+	dh_builddeb
+
+binary: binary-indep binary-arch
+.PHONY: build clean binary-indep binary-arch binary install configure


Property changes on: trunk/gforge_base/evolvisforge/plugins.test/scmcvs/debian/rules
___________________________________________________________________
Added: svn:executable
   + *

Added: trunk/gforge_base/evolvisforge/plugins.test/scmcvs/etc/httpd.d/11scm50cvs
===================================================================
--- trunk/gforge_base/evolvisforge/plugins.test/scmcvs/etc/httpd.d/11scm50cvs	                        (rev 0)
+++ trunk/gforge_base/evolvisforge/plugins.test/scmcvs/etc/httpd.d/11scm50cvs	2010-02-26 00:19:01 UTC (rev 4850)
@@ -0,0 +1,3 @@
+  # CVS begin
+  Alias /plugins/scmcvs/ {usr_share_gforge}/www/plugins/scmcvs/
+  # CVS end

Added: trunk/gforge_base/evolvisforge/plugins.test/scmcvs/etc/httpd.d/12scm50cvs.ssl
===================================================================
--- trunk/gforge_base/evolvisforge/plugins.test/scmcvs/etc/httpd.d/12scm50cvs.ssl	                        (rev 0)
+++ trunk/gforge_base/evolvisforge/plugins.test/scmcvs/etc/httpd.d/12scm50cvs.ssl	2010-02-26 00:19:01 UTC (rev 4850)
@@ -0,0 +1,3 @@
+  # CVS begin
+  Alias /plugins/scmcvs/ {usr_share_gforge}/www/plugins/scmcvs/
+  # CVS end

Added: trunk/gforge_base/evolvisforge/plugins.test/scmcvs/etc/httpd.d/30virtualcvs
===================================================================
--- trunk/gforge_base/evolvisforge/plugins.test/scmcvs/etc/httpd.d/30virtualcvs	                        (rev 0)
+++ trunk/gforge_base/evolvisforge/plugins.test/scmcvs/etc/httpd.d/30virtualcvs	2010-02-26 00:19:01 UTC (rev 4850)
@@ -0,0 +1,25 @@
+#
+# cvs.* hosts
+#
+# This example is so beautiful that I keep it
+# And can be used in a better way e.g. creating a cvs directory by group
+<VirtualHost {ip_address}:80>
+	ServerName cvs.{domain_name}
+	ServerAlias cvs.*.{domain_name}
+	DocumentRoot {gforge_chroot}{groupdir}/
+	VirtualDocumentRoot {gforge_chroot}{groupdir}/%2/htdocs
+	VirtualScriptAlias {gforge_chroot}{groupdir}/%2/cgi-bin
+	<Directory {gforge_chroot}{groupdir}>
+		Options Indexes FollowSymlinks
+		AllowOverride All
+		order allow,deny
+		allow from all
+	</Directory>
+	LogFormat "%h %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" gforge
+	CustomLog "|{cronolog_path} {var_log_gforge}/%Y/%m/%d/gforge.log" gforge
+	# Ensure that we don't try to use SSL on SSL Servers
+	<IfModule apache_ssl.c>
+		SSLDisable
+	</IfModule>
+</VirtualHost>
+

Added: trunk/gforge_base/evolvisforge/plugins.test/scmcvs/etc/httpd.d/31virtualcvs.ssl
===================================================================
--- trunk/gforge_base/evolvisforge/plugins.test/scmcvs/etc/httpd.d/31virtualcvs.ssl	                        (rev 0)
+++ trunk/gforge_base/evolvisforge/plugins.test/scmcvs/etc/httpd.d/31virtualcvs.ssl	2010-02-26 00:19:01 UTC (rev 4850)
@@ -0,0 +1,29 @@
+# CVS HTTP SSL vhosts
+<VirtualHost {ip_address}:443>
+	ServerName cvs.{domain_name}
+  	ServerAlias cvs.*.{domain_name}
+	DocumentRoot {gforge_chroot}{groupdir}/
+	VirtualDocumentRoot {gforge_chroot}{groupdir}/%2/htdocs
+	VirtualScriptAlias {gforge_chroot}{groupdir}/%2/cgi-bin
+
+	<IfModule mod_ssl.c>
+		SSLEngine on
+		SSLCertificateFile {sys_sslcrt}
+		SSLCertificateKeyFile {sys_sslkey}
+		SetEnvIf User-Agent ".*MSIE.*" nokeepalive ssl-unclean-shutdown
+	</IfModule>
+	<IfModule apache_ssl.c>
+		SSLEnable
+		SetEnvIf User-Agent ".*MSIE.*" nokeepalive ssl-unclean-shutdown
+	</IfModule>
+
+	<Directory {gforge_chroot}{groupdir}>
+		Options Indexes FollowSymlinks
+		AllowOverride All
+		order allow,deny
+		allow from all
+	</Directory>
+	LogFormat "%h %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" gforge
+	CustomLog "|{cronolog_path} {var_log_gforge}/%Y/%m/%d/gforge.log" gforge
+</VirtualHost>
+

Added: trunk/gforge_base/evolvisforge/plugins.test/scmcvs/etc/plugins/scmcvs/config.php
===================================================================
--- trunk/gforge_base/evolvisforge/plugins.test/scmcvs/etc/plugins/scmcvs/config.php	                        (rev 0)
+++ trunk/gforge_base/evolvisforge/plugins.test/scmcvs/etc/plugins/scmcvs/config.php	2010-02-26 00:19:01 UTC (rev 4850)
@@ -0,0 +1,16 @@
+<?php
+ 
+$default_cvs_server = "cvs." . $GLOBALS['sys_default_domain'] ;
+$enabled_by_default = 1 ;
+$cvs_binary_version='1.12';
+$use_ssl=false;
+$GLOBALS['cvs_binary_version']=$cvs_binary_version;
+$sys_plugins_path='/opt/gforge/gforge/plugins';
+$sys_default_domain='gforge.company.com';
+
+// Local Variables:
+// mode: php
+// c-file-style: "bsd"
+// End:
+ 
+?>

Added: trunk/gforge_base/evolvisforge/plugins.test/scmcvs/etc/plugins/scmcvs/config.pl
===================================================================
--- trunk/gforge_base/evolvisforge/plugins.test/scmcvs/etc/plugins/scmcvs/config.pl	                        (rev 0)
+++ trunk/gforge_base/evolvisforge/plugins.test/scmcvs/etc/plugins/scmcvs/config.pl	2010-02-26 00:19:01 UTC (rev 4850)
@@ -0,0 +1,4 @@
+$this_server = $sys_default_domain ;
+# $this_server = "cvs." . $sys_default_domain ;
+
+1 ;

Added: trunk/gforge_base/evolvisforge/plugins.test/scmcvs/etc/plugins/scmcvs/cvsweb.conf
===================================================================
--- trunk/gforge_base/evolvisforge/plugins.test/scmcvs/etc/plugins/scmcvs/cvsweb.conf	                        (rev 0)
+++ trunk/gforge_base/evolvisforge/plugins.test/scmcvs/etc/plugins/scmcvs/cvsweb.conf	2010-02-26 00:19:01 UTC (rev 4850)
@@ -0,0 +1,609 @@
+#                                                                  -*- perl -*-
+# Configuration of cvsweb.cgi, a web interface to CVS repositories.
+#
+# (c) 1998-1999 H. Zeller    <zeller at think.de>
+#     1999      H. Nordstrom <hno at hem.passagen.se>
+#     2000-2002 A. MUSHA     <knu at FreeBSD.org>
+#     2002-2004 V. Skytt�    <scop at FreeBSD.org>
+#          based on work by Bill Fenner  <fenner at FreeBSD.org>
+#
+# $FreeBSD: projects/cvsweb/cvsweb.conf,v 1.88 2004/08/10 20:13:40 scop Exp $
+# $Id$
+# $Idaemons: /home/cvs/cvsweb/cvsweb.conf,v 1.27 2001/08/01 09:48:39 knu Exp $
+#
+
+# Set the path for the following commands:
+#   cvs, rlog, rcsdiff
+#   gzip (if you enable $allow_compress)
+#   (g)tar, zip (if you enable $allow_tar)
+#   cvsgraph (if you enable $allow_graph)
+#   enscript (if you enable $allow_enscript)
+#
+ at command_path = qw(/bin /usr/bin /usr/local/bin);
+
+# Search the above directories for each command (prefer gtar over tar).
+#
+for (qw(cvs rlog rcsdiff gzip gtar zip cvsgraph enscript)) {
+	$CMD{$_} = search_path($_);
+}
+$CMD{tar}   = delete($CMD{gtar}) if $CMD{gtar};
+$CMD{tar} ||= search_path('tar');
+
+# CVS roots
+#
+# CVSweb can handle several CVS repositories at once.  Enter short (internal)
+# symbolic repository names, their names in the UI and the actual locations
+# here.  The repositories will be listed in the order they're specified here.
+#
+# CVSweb will also load per-cvsroot configuration files if they exist.
+# The symbolic_name (see below) of the CVS root will be concatenated into the
+# name of the main (this) configuration file along with a hyphen, and that
+# file will be loaded for that particular CVS root.  For examples, see
+# cvsweb.conf-* in the CVSweb distribution.
+#
+# Note that only local repositories are currently supported.  Things like
+# :pserver:someone at xyz.com:/data/cvsroot won't work.
+#
+# 'symbolic_name' => ['Name to display',  '/path/to/cvsroot']
+#
+ at CVSrepositories = (
+        'gforge'  => ['GForge-CVS',       '/var/lib/gforge/chroot/cvsroot/'],
+#       'freebsd' => ['FreeBSD',          '/var/ncvs'],
+#       'openbsd' => ['OpenBSD',          '/var/ncvs'],
+#       'netbsd'  => ['NetBSD',           '/var/ncvs'],
+#       'ruby'    => ['Ruby',             '/var/anoncvs/ruby'],
+);
+
+# The default CVS root.  Note that @CVSrepositories is list, not a hash,
+# so you'll want to use 2 * 0-based-index-number here; or set this directly
+# to the default's symbolic name. Unless specified, the first valid one in
+# @CVSrepositories is used as the default.
+#
+# For example:
+#
+#$cvstreedefault = $CVSrepositories[2 * 0];
+#$cvstreedefault = 'local';
+
+# Mirror sites.  The keys will be used as link texts, and the values are
+# URLs pointing to the corresponding mirrors.
+#
+#%MIRRORS = (
+#     'Other location'  => 'http://192.168.0.1/cgi-bin/cvsweb.cgi/',
+#     'Yet another one' => 'http://192.168.0.2/cgi-bin/cvsweb.cgi/',
+#);
+
+# Bug tracking system linking options ("PR" means Problem Report, as in GNATS)
+#
+#@prcategories = qw(
+#    advocacy
+#    alpha
+#    bin
+#    conf
+#    docs
+#    gnu
+#    i386
+#    kern
+#    misc
+#    pending
+#    ports
+#    sparc
+#);
+#$prcgi = "http://www.FreeBSD.org/cgi/query-pr.cgi?pr=%s";
+#$prkeyword = "PR";
+
+# Manual gateway linking.
+#
+$mancgi =
+    "http://www.FreeBSD.org/cgi/man.cgi?apropos=0&sektion=%s&query=%s&manpath=FreeBSD+5.0-current&format=html";
+
+# Defaults for user options.
+#
+%DEFAULTVALUE = (
+
+    # sortby: File sort order
+    #   file   Sort by filename
+    #   rev    Sort by revision number
+    #   date   Sort by commit date
+    #   author Sort by author
+    #   log    Sort by log message
+    "sortby" => "file",
+
+    # ignorecase: Ignore case in sorts (filenames, authors, log messages)
+    #   0      Honor case
+    #   1      Ignore case
+    "ignorecase" => "0",
+
+    # hideattic: Hide or show files in Attic
+    #   1      Hide files in Attic
+    #   0      Show files in Attic
+    "hideattic" => "1",
+
+    # logsort: Sort order for CVS logs
+    #   date   Sort revisions by date
+    #   rev    Sort revision by revision number
+    #   cvs    Don't sort them. Same order as CVS/RCS shows them.
+    "logsort" => "date",
+
+    # f: Default diff format
+    #   h      Human readable
+    #   u      Unified diff
+    #   c      Context diff
+    #   s      Side by side
+    #   uc     Unified diff, enscript colored (falls back to "u" w/o enscript)
+    #   cc     Context diff, enscript colored (falls back to "c" w/o enscript)
+    #   sc     Side by side, enscript colored (falls back to "s" w/o enscript)
+    "f" => "u",
+
+    # hidecvsroot: Don't show the CVSROOT directory
+    #   1      Hide CVSROOT directory
+    #   0      Show CVSROOT directory
+    "hidecvsroot" => "0",
+
+    # hidenonreadable: Don't show entries which cannot be read
+    #   1      Hide non-readable entries
+    #   0      Show non-readable entries
+    "hidenonreadable" => "1",
+
+    # ln: Show line numbers in HTMLized views
+    #   1      Show line numbers
+    #   0      Don't show line numbers
+    "ln" => "0",
+);
+
+#
+# Layout options (see also the included CSS file)
+#
+
+# Wanna have a logo on the page ?
+#
+#$logo = '<p><img src="/icons/apache_pb.gif" alt="Powered by Apache" /></p>';
+
+# The title of the Page on startup.  This will be put inside <h1> and <title>
+# tags, and HTML escaped.
+#
+$defaulttitle = "CVS Repository";
+
+# The address is shown on the footer.  This will be put inside a <address> tag.
+#
+$address = '<span style="font-size: smaller">FreeBSD-CVSweb &lt;<a href="mailto:freebsd-cvsweb at FreeBSD.org">freebsd-cvsweb at FreeBSD.org</a>&gt;</span>';
+
+$long_intro = <<EOT;
+<p>
+This is a WWW interface for CVS repositories.
+You can browse the file hierarchy by following directory links (which
+have slashes after them, e.g. <code>src/</code>).
+If you follow a link to a file, you will see its revision history.
+Following a link labeled with a revision number will display that
+revision of the file.  In the revision history view, there is a link
+near each revision to display diffs between that revision and the
+previous one, and a form at the bottom of the page that allows you to
+display diffs between arbitrary revisions.
+</p><p>
+This script has been written by Bill Fenner and improved by Henner Zeller,
+Henrik Nordstr&ouml;m, and Ken Coar, then Akinori MUSHA brought it
+back to FreeBSD community and made further improvements; it is covered
+by <a
+href="http://www.opensource.org/licenses/bsd-license.html">The BSD Licence</a>.
+</p><p>
+If you would like to use this CGI script on your own web server and
+CVS tree, download the latest version from &lt;<a
+href="http://www.FreeBSD.org/projects/cvsweb.html">http://www.FreeBSD.org/projects/cvsweb.html</a>&gt;.
+</p><p>
+Feel free to send any patches, suggestions and comments to the FreeBSD-CVSweb
+mailing list at
+&lt;<a
+href="mailto:freebsd-cvsweb\@FreeBSD.org">freebsd-cvsweb\@FreeBSD.org</a>&gt;.
+</p>
+EOT
+
+$short_instruction = <<EOT;
+<p>
+Click on a directory to enter that directory. Click on a file to display
+its revision history and to get a chance to display diffs between revisions.
+</p>
+EOT
+
+# Icons for the web UI.  If ICON-URL is empty, the TEXT representation is
+# used.  If you do not want to have a tool tip for an icon, set TEXT empty.
+# The width and height of the icon allow the browser to correctly display
+# the table while still loading the icons.  If these icons are too large,
+# check out the "mini" versions in the icons/ directory; they have a
+# width/height of 16/16.
+#
+my $iconsdir = '/plugins/scmcvs/cvsweb/icons';
+
+# format:          TEXT       ICON-URL                  width height
+%ICONS = (
+     back    => [('[BACK]',   "$iconsdir/back.gif",      20,   22)],
+     dir     => [('[DIR]',    "$iconsdir/dir.gif",       20,   22)],
+     file    => [('[TXT]',    "$iconsdir/text.gif",      20,   22)],
+     binfile => [('[BIN]',    "$iconsdir/binary.gif",    20,   22)],
+     graph   => [('[GRAPH]',  "$iconsdir/minigraph.png", 16,   16)],
+);
+undef $iconsdir;
+
+# An URL where to find the CSS.
+#
+$cssurl = '/plugins/scmcvs/cvsweb/css/cvsweb.css';
+
+# The length to which the last log entry should be truncated when shown
+# in the directory view.
+#
+$shortLogLen = 80;
+
+# Show author of last change?
+#
+$show_author = 1;
+$authorurl_pattern = '<a href="/users/:AUTHOR:">:AUTHOR:</a>';
+
+# Cell padding for directory table.
+#
+$tablepadding = 2;
+
+# Regular expresions for files and directories which should be hidden.
+# Each regexp is compared against a path relative to a CVS root, after
+# stripping the trailing ",v" if present.  Matching files and directories
+# are not displayed.
+#
+ at ForbiddenFiles = (
+    qr|^CVSROOT/+passwd$|o, # CVSROOT/passwd should not be 'cvs add'ed though.
+    qr|/\.cvspass$|o,       # Ditto.  Just in case.
+   #qr|^my/+secret/+dir|o,
+);
+
+# Use CVSROOT/descriptions for describing the directories/modules?
+# See INSTALL, section 9.
+#
+$use_descriptions = 0;
+
+#
+# Human readable diff.
+#
+# (c) 1998 H. Zeller <zeller at think.de>
+#
+# Generates two columns of color encoded diff; much like xdiff or GNU Emacs'
+# ediff-mode.
+#
+# The diff-stuff is a piece of code I once made for cvs2html which is under
+# GPL, see http://www.sslug.dk/cvs2html
+# (c) 1997/98 Peter Toft <pto at sslug.imm.dtu.dk>
+
+# Make lines breakable so that the columns do not exceed the width of the
+# browser?
+#
+$hr_breakable = 1;
+
+# Print function names in diffs (unified and context only).
+# See the -p option in the diff(1) man page.
+#
+$showfunc = 1;
+
+# For each pair of regexps, files that match the first regexp will be diff'ed
+# with an -F option using the second regexp (unified and context only).
+# See the -F option in the diff(1) man page.
+#
+%funcline_regexp = (
+    qr/\.(?:4th|fr)$/o => "\\(^\\|[ \t]\\): ",
+    qr/\.rb$/o         => "^[\t ]*\\(class\\|module\\|def\\) ",
+);
+
+# Ignore whitespace in human readable diffs? ('-w' option to diff)
+#
+$hr_ignwhite = 0;
+
+# Ignore diffs which are caused by keyword substitution, $Id and friends?
+# ('-kk' option to rcsdiff)
+#
+$hr_ignkeysubst = 1;
+
+# The width of the textinput of the "request diff" form.
+#
+$inputTextSize = 12;
+
+# Custom per MIME type diff tools, used for comparing binary files such as
+# spreadsheets, images etc.  Each key is a MIME type in lowercase.
+# Each value is an array ref of available diff tools for that type, each of
+# which is a hash ref with values (mandatory where default not listed):
+#   name: the name to show in the UI for this diff type
+#   cmd:  full path to executable
+#   args: arguments as an array ref (not string!, defaults to no arguments)
+#   type: output MIME type (defaults to text/plain)
+#
+%DIFF_COMMANDS = (
+  #'text/xml' => [
+  #  { name => 'XMLdiff',
+  #    cmd  => $CMD{xmldiff},
+  #  },
+  #  { name => 'XMLdiff (XUpdate)',
+  #    cmd  => $CMD{xmldiff},
+  #    args => [ qw(-x) ],
+  #    type => 'text/xml',
+  #  },
+  #],
+);
+
+#
+# Mime types
+#
+
+# The MIME type lookup works like this:
+# 1) Look up from %MTYPES below with the file name extension (suffix).
+# 2) If not found, use the MIME::Types(3) module if it's available.
+# 3) If not found, lookup from the $mime_types file (see below).
+# 4) If not found, try %MTYPES{'*'}.
+# 5) If not found, use 'application/octet-stream' if the file's keyword
+#    substitution mode is b (ie. the file was checked in as binary to CVS),
+#    'text/plain' otherwise.
+
+# Quick MIME type lookup; maps filename extensions to MIME types.
+# Add common mappings here for fast lookup.  You can also use this
+# to override MIME::Types(3) or the $mime_types file (see below).
+#
+%MTYPES = (
+	"html"  => "text/html",
+	"shtml" => "text/html",
+	"gif"   => "image/gif",
+	"jpeg"  => "image/jpeg",
+	"jpg"   => "image/jpeg",
+	"png"   => "image/png",
+	"xpm"   => "image/xpm",
+#	"*"     => "text/plain",
+);
+
+# The traditional mime.types file, eg. the one from Apache is fine.
+# See above where this gets used.
+#
+$mime_types = '/usr/local/etc/apache/mime.types';
+
+# Charset appended to the Content-Type HTTP header for text/* MIME types.
+# Note that the web server may default to some charset which may take effect
+# if you leave this parameter empty or unset.
+# For Apache, see also the AddDefaultCharset directive.
+#
+$charset = '';
+
+# e.g.
+#$charset = $where =~ m,/ru[/_-], ? 'koi8-r'
+#  : $where =~ m,/zh[/_-], ? 'big5'
+#  : $where =~ m,/ja[/_-], ? 'x-euc-jp'
+#  : $where =~ m,/ko[/_-], ? 'x-euc-kr'
+#  : 'iso-8859-1';
+
+# Output filter
+#
+$output_filter = '';
+
+# e.g.
+## unify/convert Japanese code into EUC-JP
+#$output_filter= '/usr/local/bin/nkf -e';
+
+##############
+# Misc
+##############
+
+# Allow annotation of files?  See also @annotate_options below.
+#
+$allow_annotate = 1;
+
+# Allow HTMLized version of files?
+#
+$allow_markup = 1;
+
+# Allow extra hyperlinking (such as PR cross-references) in logs?
+#
+$allow_log_extra = 1; # default: enabled
+
+# Allow extra hyperlinking in directories?
+#
+$allow_dir_extra = 1;
+
+# Allow extra hyperlinking in source code/formatted diff views?
+#
+$allow_source_extra = 1;
+
+# Allow compression with gzip in general?  Note that this also requires
+# that the browser supports it, and will be disabled on the fly when necessary.
+#
+$allow_compress = 0;
+
+# Use JavaScript in the UI?
+#
+$use_java_script = 1;
+
+# Show a form for setting options in the directory view?
+#
+$edit_option_form = 1;
+
+# Show last changelog message for subdirectories?
+# The current implementation makes many assumptions and may show the
+# incorrect file at some times. The main assumption is that the last
+# modified file has the newest filedate. But some CVS operations
+# touches the file without even when a new version is't checked in,
+# and TAG based browsing essientially puts this out of order, unless
+# the last checkin was on the same tag as you are viewing.
+# Enable this if you like the feature, but don't rely on correct results.
+#
+$show_subdir_lastmod = 0;
+
+# Show CVS log when viewing file contents?
+#
+$show_log_in_markup = 1;
+
+# Preformat when viewing file contents?  This should be turned off
+# when you have files in the repository that are in a multibyte
+# encoding which uses HTML special characters ([<>&"]) as part of a
+# multi-byte character. (such as iso-2022-jp, ShiftJIS, etc.)
+# Otherwise those files will get screwed up in markup.
+#
+# Note: enscript(1) highlighting is preferred over the built-in preformatting,
+# ie. this has no effect if $allow_enscript is true and enscript can highlight
+# the file.
+#
+$preformat_in_markup = 0;
+
+# Tabstop used to expand tabs in colored diffs. If undefined then
+# tabs are always expanded to 8 spaces.
+#
+$tabstop = 8;
+
+# If you wish to display absolute times in your local timezone,
+# then define @mytz and fill in the strings for your standard and
+# daylight time. Note that you must also make sure the system
+# timezone is correctly set.
+#
+#@mytz=("EST", "EDT");
+
+# CVSweb is friendly to caches by sending the HTTP Last-Modified
+# header corresponding to the sent content.  In the case of a
+# checkout, this may require running rcslog on the file solely for the
+# purpose of retrieving the timestamp to be sent.  If you have a slow
+# server, you may turn this off for a small performance gain.
+#
+$use_moddate = 1;
+
+# Maximum number of filenames to pass to rlog(1) in one command.
+# If you see "Failed to spawn GNU rlog" errors with directories containing
+# lots of files, experiment by setting this to different values and see if
+# the error still occurs.  A good value to start from would be eg. 200.
+# Just comment this out if you're not bitten by the problem.
+#
+#$file_list_len = 200;
+
+# Allow graphical representations of file revisions and branches with CvsGraph?
+#
+$allow_cvsgraph = $CMD{cvsgraph} ? 1 : 0;
+
+# Path to the CvsGraph configuration file.  Only used if $allow_cvsgraph
+# is true.  Leave this empty or comment it out to make cvsgraph(1) use its
+# default configuration file.  Note that CVSweb will override some of the
+# settings in the configuration file with command line options, see
+# doGraph() and doGraphView() in cvsweb.cgi for details.
+#
+#$cvsgraph_config = "/etc/cvsgraph.conf";
+
+# URL to the CVSHistory script.  This should be absolute (but does not need
+# to include the host and port if the script is on the same server as
+# CVSweb).
+#$cvshistory_url = "/cgi-bin/cvshistory.cgi";
+
+# Whether to allow downloading a tarball or a zip of the current directory.
+# While downloading of the entire repository is disallowed, depending on
+# the directory this may take a lot of time and disk space.  For some CVS
+# versions, the user account running CVSweb needs write access to
+# CVSROOT/val-tags.  See also the tar, gzip and zip options below.
+#
+#$allow_tar = (($CMD{tar} && $CMD{gzip}) || $CMD{zip}) ? 1 : 0;
+
+# Options to pass to tar(1).
+# For example: @tar_options = qw(--ignore-failed-read);
+# GNU tar has some useful options against unexpected errors.
+# Other useful options include "--owner=0" and "--group=0", see
+# the tar(1) (or gtar(1)) manpage for details.
+#
+ at tar_options = qw();
+
+# Options to pass to gzip(1) when compressing a tarball to download.
+# For example: @gzip_options = qw(-3);
+# Try lower compression level than 6 (default) if you want faster
+# compression, or higher for better compression.
+#
+ at gzip_options = qw();
+
+# Options to pass to zip(1) when compressing a zip archive to download.
+# For example: @zip_options = qw(-3);
+# Try lower compression level than 6 (default) if you want faster
+# compression, or higher for better compression.
+#
+ at zip_options = qw(-q);
+
+# Options to pass to cvs(1).
+# For cvs versions 1.11 to 1.11.6 (broken in < 1.11, removed in 1.11.7), you
+# can use the '-l' option to prevent cvs from writing to the history file.
+# For other cvs versions, either suppress history logging by using the
+# LogHistory parameter in CVSROOT/config or make sure that the CVSweb user
+# can read and write to CVSROOT/history.
+# FreeBSD's and OpenBSD's cvs(1) has long since supported -R (read only access
+# mode) option, which considerably speeds up checkouts over NFS.  For other
+# platforms, the -R option and the CVSREADONLYFS environment variable are
+# available in cvs >= 1.12.1.  A similar effect is provided by -u on NetBSD.
+#
+ at cvs_options = qw(-f);
+push @cvs_options, '-R' if ($^O eq 'freebsd' || $^O eq 'openbsd');
+push @cvs_options, '-u' if ($^O eq 'netbsd');
+# Only affects cvs >= 1.12.1, but doesn't hurt older ones.
+$ENV{CVSREADONLYFS} = 1 unless exists($ENV{CVSREADONLYFS});
+
+# Options to pass to the 'cvs annotate' command, usually the normal
+# @cvs_options are good enough here.
+# To make annotate work against a read only repository, add -n, ie.:
+# @annotate_options = (@cvs_options, '-n');
+#
+ at annotate_options = @cvs_options;
+
+# Options to pass to rcsdiff(1).
+# Probably the only useful one here is -q (suppress diagnostic output).
+#
+ at rcsdiff_options = qw(-q);
+
+# Enables syntax highlighting using GNU Enscript if set.
+# You will need GNU Enscript version 1.6.3 or newer for this to work.
+#
+#$allow_enscript = $CMD{enscript} ? 1 : 0;
+
+# Options to pass to enscript(1).
+# Do not set the -q, --language, -o or --highlight options here.
+# Most useful styles are probably emacs, emacs_verbose and msvc.
+#
+ at enscript_options = qw(--style=emacs --color=1);
+
+# Enscript highlight rule to filename regex mappings.  The set of useful
+# mappings depends on what highlight rules the system has installed.
+#
+%enscript_types =
+  (
+   'ada'          => qr/\.ad(s|b|a)$/o,
+   'asm'          => qr/\.[Ss]$/o,
+   'awk'          => qr/\.awk$/o,
+   'bash'         => qr/\.(bash(_profile|rc)|inputrc)$/o,
+   'c'            => qr/\.(c|h)$/o,
+   'changelog'    => qr/^changelog$/io,
+   'cpp'          => qr/\.(c\+\+|C|H|cpp|cc|cxx)$/o,
+   'csh'          => qr/\.(csh(rc)?|log(in|out)|history)$/o,
+   'elisp'        => qr/\.e(l|macs)$/o,
+   'fortran'      => qr/\.[fF]$/o,
+   'haskell'      => qr/\.(l?h|l?g)s$/o,
+   'html'         => qr/\.x?html?$/o,
+   'idl'          => qr/\.idl$/o,
+   'inf'          => qr/\.inf$/io,
+   'java'         => qr/\.java$/o,
+   'javascript'   => qr/\.(js|pac)$/o,
+   'ksh'          => qr/\.ksh$/o,
+   'm4'           => qr/\.m4$/o,
+   'makefile'     => qr/(GNU)?[Mm]akefile(?!\.PL\b)|\.(ma?ke?|am)$/o,
+   'matlab'       => qr/\.m$/o,
+   'nroff'        => qr/\.man$/o,
+   'pascal'       => qr/\.p(as|p)?$/io,
+   'perl'         => qr/\.p(m|(er)?l)$/io,
+   'postscript'   => qr/\.e?ps$/io,
+   'python'       => qr/\.py$/o,
+   'rfc'          => qr/\b((rfc|draft)\..*\.txt)$/o,
+   'scheme'       => qr/\.(scm|scheme)$/o,
+   'sh'           => qr/\.sh$/o,
+   'skill'        => qr/\.il$/o,
+   'sql'          => qr/\.sql$/o,
+   'states'       => qr/\.st$/o,
+   'synopsys'     => qr/\.s(cr|yn(th)?)$/o,
+   'tcl'          => qr/\.tcl$/o,
+   'tcsh'         => qr/\.tcshrc$/o,
+   'tex'          => qr/\.tex$/o,
+   'vba'          => qr/\.vba$/o,
+   'verilog'      => qr/\.(v|vh)$/o,
+   'vhdl'         => qr/\.vhdl?$/o,
+   'vrml'         => qr/\.wrl$/o,
+   'wmlscript'    => qr/\.wmls(cript)?$/o,
+   'zsh'          => qr/\.(zsh(env|rc)|z(profile|log(in|out)))$/o,
+  );
+
+1;
+
+# EOF

Added: trunk/gforge_base/evolvisforge/plugins.test/scmcvs/gforge-plugin-scmcvs.spec
===================================================================
--- trunk/gforge_base/evolvisforge/plugins.test/scmcvs/gforge-plugin-scmcvs.spec	                        (rev 0)
+++ trunk/gforge_base/evolvisforge/plugins.test/scmcvs/gforge-plugin-scmcvs.spec	2010-02-26 00:19:01 UTC (rev 4850)
@@ -0,0 +1,150 @@
+%define plugin		scmcvs
+%{!?release:%define release 1}
+
+Summary: CVS Plugin for GForge CDE
+Name: gforge-plugin-%{plugin}
+Version: 4.1
+Release: %{release}
+BuildArch: noarch
+License: GPL
+Group: Development/Tools
+Source: %{name}-%{version}.tar.bz2
+AutoReqProv: off
+Requires: gforge >= 4.0
+Requires: perl perl-URI
+Requires: cvs rcs
+URL: http://www.gforge.org/
+BuildRoot: %{_tmppath}/%{name}-%{version}-root
+
+%define	gfuser			gforge
+%define gfgroup			gforge
+
+%if "%{_vendor}" == "suse"
+	%define httpduser		wwwrun
+	%define httpdgroup		www
+#Requires: perl-IPC-Run
+%else
+	%define httpduser		apache
+	%define httpdgroup		apache
+Requires: perl-IPC-Run
+%endif
+
+#Globals defines for gforge
+%define GFORGE_DIR		%{_datadir}/gforge
+%define GFORGE_CONF_DIR		%{_sysconfdir}/gforge
+%define GFORGE_LANG_DIR		%{GFORGE_CONF_DIR}/languages-local
+%define GFORGE_SBIN_DIR		%{_sbindir}
+%define GFORGE_LIB_DIR		%{_libdir}/gforge/lib
+%define GFORGE_DB_DIR		%{_libdir}/gforge/db
+%define GFORGE_BIN_DIR		%{_libdir}/gforge/bin
+%define PLUGINS_LIB_DIR		%{_libdir}/gforge/plugins
+%define PLUGINS_CONF_DIR	%{GFORGE_CONF_DIR}/plugins
+%define CROND_DIR		%{_sysconfdir}/cron.d
+
+#specific define for plugins
+%define PLUGIN_LIB		%{PLUGINS_LIB_DIR}/%{plugin}
+%define PLUGIN_CONF		%{PLUGINS_CONF_DIR}/%{plugin}
+
+
+%description
+GForge CDE is a web-based Collaborative Development Environment offering
+easy access to CVS, mailing lists, bug tracking, message
+boards/forums, task management, permanent file archival, and total
+web-based administration.
+
+This RPM installs SCM CVS plugin for GForge CDE which was previously bundled
+with GForge CDE and provides CVS support to GForge CDE.
+
+It also provides a specific version of CVSWeb wrapped in GForge CDE.
+
+%prep
+%setup
+
+%build
+
+%install
+# cleaning build environment
+[ "$RPM_BUILD_ROOT" != "/" ] && rm -rf $RPM_BUILD_ROOT
+
+# installing crontab
+install -m 755 -d $RPM_BUILD_ROOT/%{CROND_DIR}/
+install -m 644 rpm-specific/cron.d/%{name} $RPM_BUILD_ROOT/%{CROND_DIR}/
+
+# copying all needed stuff to %{PLUGIN_LIB}
+install -m 755 -d $RPM_BUILD_ROOT/%{PLUGIN_LIB}
+for dir in bin include lib rpm-specific www; do
+	cp -rp $dir $RPM_BUILD_ROOT/%{PLUGIN_LIB}/
+done;
+chmod 755 $RPM_BUILD_ROOT/%{PLUGIN_LIB}/bin/*
+
+# installing CVSWeb cgi
+install -m 755 -d $RPM_BUILD_ROOT/%{GFORGE_BIN_DIR}/
+install -m 755 cgi-bin/cvsweb $RPM_BUILD_ROOT/%{GFORGE_BIN_DIR}/
+install -m 755 -d $RPM_BUILD_ROOT/%{PLUGIN_LIB}/cgi-bin/
+install -m 755 cgi-bin/cvsweb $RPM_BUILD_ROOT/%{PLUGIN_LIB}/cgi-bin/
+
+# installing configuration file
+install -m 755 -d  $RPM_BUILD_ROOT/%{GFORGE_CONF_DIR}/
+cp -rp etc/* $RPM_BUILD_ROOT/%{GFORGE_CONF_DIR}/
+install -m 755 -d $RPM_BUILD_ROOT/%{PLUGIN_CONF}
+install -m 664 etc/plugins/%{plugin}/config.php $RPM_BUILD_ROOT/%{PLUGIN_CONF}/
+install -m 664 etc/plugins/%{plugin}/cvsweb.conf $RPM_BUILD_ROOT/%{PLUGIN_CONF}/
+
+# installing installation specific language files
+install -m 755 -d $RPM_BUILD_ROOT/%{PLUGIN_CONF}/languages
+if ls rpm-specific/languages/*.tab &> /dev/null; then
+	cp rpm-specific/languages/*.tab $RPM_BUILD_ROOT/%{PLUGIN_CONF}/languages/
+fi
+
+
+%pre
+
+%post
+if [ "$1" = "1" ] ; then
+	# register plugin in database
+	%{GFORGE_BIN_DIR}/register-plugin %{plugin} CVS &> /dev/null
+else
+	# upgrade
+	:
+fi
+
+%postun
+if [ "$1" = "0" ] ; then
+	# unregister plugin in database
+	%{GFORGE_BIN_DIR}/unregister-plugin %{plugin}
+else
+	# upgrade
+	:
+fi
+
+%clean
+[ "$RPM_BUILD_ROOT" != "/" ] && rm -rf $RPM_BUILD_ROOT
+
+%files
+%defattr(-, root, root)
+%doc AUTHORS COPYING README
+%attr(0660, %{httpduser}, %{gfgroup}) %config(noreplace) %{PLUGIN_CONF}/config.php
+%attr(0660, %{httpduser}, %{gfgroup}) %config(noreplace) %{PLUGIN_CONF}/cvsweb.conf
+%attr(0755,-,-) %{GFORGE_BIN_DIR}/cvsweb
+%{GFORGE_CONF_DIR}/httpd.d
+%{PLUGIN_CONF}/languages
+%{PLUGIN_CONF}/config.pl
+%{PLUGIN_LIB}/bin
+%{PLUGIN_LIB}/cgi-bin
+%{PLUGIN_LIB}/include
+%{PLUGIN_LIB}/lib
+%{PLUGIN_LIB}/rpm-specific
+%{PLUGIN_LIB}/www
+%{CROND_DIR}/%{name}
+
+%changelog
+* Fri Apr 29 2005 Xavier Rameau <xrameau at gmail.com>
+- Added support for SuSE
+* Sat Feb 19 2005 Guillaume Smet <guillaume-gforge at smet.org>
+- 4.1
+- replaced -f test with ls
+- redirects register-plugin output to /dev/null
+* Mon Jan 03 2005 Guillaume Smet <guillaume-gforge at smet.org>
+- it's now possible to add specific language files in the RPM
+* Sun Sep 26 2004  Guillaume Smet <guillaume-gforge at smet.org>
+Initial RPM packaging

Added: trunk/gforge_base/evolvisforge/plugins.test/scmcvs/rpm-specific/cron.d/gforge-plugin-scmcvs
===================================================================
--- trunk/gforge_base/evolvisforge/plugins.test/scmcvs/rpm-specific/cron.d/gforge-plugin-scmcvs	                        (rev 0)
+++ trunk/gforge_base/evolvisforge/plugins.test/scmcvs/rpm-specific/cron.d/gforge-plugin-scmcvs	2010-02-26 00:19:01 UTC (rev 4850)
@@ -0,0 +1,24 @@
+#
+# GForge
+# Copyright 2005 (c) Guillaume Smet
+# http://gforge.org/
+#
+# @version   $Id: gforge,v 1.2 2004/12/07 16:12:24 gsmet Exp $
+#
+
+# Change path to the GForge directory.
+GFORGE="/usr/share/gforge"
+GFORGE_PLUGINS="/usr/lib/gforge/plugins"
+
+# Change paths to the GForge directory.
+# Don't reference $GFORGE because this won't work!
+# You may need to change the pathname to php CLI (command line interface)
+PHP="/usr/bin/php -q -d include_path=.:/etc/gforge:/usr/share/gforge:/usr/share/gforge/www/include"
+
+# Don't mail command output to anyone.
+MAILTO=""
+
+#
+#       Generate CVS tarballs
+#
+5 2 * * * root $PHP $GFORGE_PLUGINS/scmcvs/cronjobs/tarballs.php
\ No newline at end of file

Added: trunk/gforge_base/evolvisforge/plugins.test/scmcvs/www/acl.php
===================================================================
--- trunk/gforge_base/evolvisforge/plugins.test/scmcvs/www/acl.php	                        (rev 0)
+++ trunk/gforge_base/evolvisforge/plugins.test/scmcvs/www/acl.php	2010-02-26 00:19:01 UTC (rev 4850)
@@ -0,0 +1,75 @@
+<?php
+/**
+ * Implement CVS ACLs based on GForge roles
+ *
+ * Copyright 2004 GForge, LLC
+ *
+ * @version   $Id$
+ *
+ * This file is part of GForge.
+ *
+ * GForge 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.
+ *
+ * GForge is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with GForge; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  US
+ */
+
+require_once('common/include/escapingUtils.php');
+require_once('squal_pre.php');
+
+if (!$sys_use_scm) {
+	exit_disabled();
+}
+
+$env_group = getStringFromPost('group');
+$env_user = getStringFromPost('user');
+# Group must contain 3 - 15 alphanumeric chars or -
+preg_match("/^([[:alnum:]-]{3,15})$/", $env_group, $matches);
+# User rules
+# 1. Must only contain alphanumeric chars
+# 2. Must be 3 - 15 chars
+preg_match("/[[:alnum:]_]{3,15}/", $env_user, $matches2);
+
+if (count($matches) == 0) {
+	exit_error('','Invalid CVS repository');
+} else {
+	if (count($matches2) == 0) {
+		exit_error('','Invalid username');
+	}
+
+	$userName = $matches2[count($matches2)-1];
+	$User =& user_get_object_by_name($userName);
+	if (!$User || !is_object($User)) {
+		exit_error('','User not found');
+	}
+	session_set_new($User->getID());
+
+	$projectName = $matches[count($matches)-1];
+	$Group =& group_get_object_by_name($projectName);
+	if (!$Group || !is_object($Group) || $Group->isError()) {
+		exit_no_group();
+	}
+
+	$perm =& permission_get_object($Group, $User);
+	if (!$perm || !is_object($perm) || !$perm->isCVSWriter()) {
+		exit_permission_denied();
+	}
+}
+
+exit(0);
+
+// Local Variables:
+// mode: php
+// c-file-style: "bsd"
+// End:
+
+?>

Added: trunk/gforge_base/evolvisforge/plugins.test/scmsvn/README
===================================================================
--- trunk/gforge_base/evolvisforge/plugins.test/scmsvn/README	                        (rev 0)
+++ trunk/gforge_base/evolvisforge/plugins.test/scmsvn/README	2010-02-26 00:19:01 UTC (rev 4850)
@@ -0,0 +1,20 @@
+gforge-plugin-scmsvn
+--------------------
+
+This is the Subversion plugin for GForge. It creates Subversion
+repositories and provides some functionality to manage them.
+
+Decompress the plugin tarball and place it into your plugins directory.
+Usually, this would be in a location like /opt/gforge/gforge/plugins/scmsvn
+Whereever you place it, be sure your /etc/gforge/local.inc file has
+$sys_plugins_path pointing to the plugins directory.
+
+The scmsvn/etc/plugins/scmsvn/config.php should be copied and edited
+to
+
+        /etc/gforge/plugins/scmsvn/config.php
+
+The 'Site Admin' tab on the GForge web interface now has a 'Plugin Manager'
+page where you can activate plugins on a sitewide basis. Be sure to do that
+if you want this plugin to be available to projects.
+

Added: trunk/gforge_base/evolvisforge/plugins.test/scmsvn/bin/db-delete.pl
===================================================================
--- trunk/gforge_base/evolvisforge/plugins.test/scmsvn/bin/db-delete.pl	                        (rev 0)
+++ trunk/gforge_base/evolvisforge/plugins.test/scmsvn/bin/db-delete.pl	2010-02-26 00:19:01 UTC (rev 4850)
@@ -0,0 +1,112 @@
+#!/usr/bin/perl -w
+#
+# $Id$
+#
+# Debian-specific script to delete plugin-specific tables
+# Roland Mas <lolando at debian.org>
+
+use strict ;
+use diagnostics ;
+
+use DBI ;
+use MIME::Base64 ;
+use HTML::Entities ;
+
+use vars qw/$dbh @reqlist $query/ ;
+use vars qw/$sys_default_domain $sys_cvs_host $sys_download_host
+    $sys_shell_host $sys_users_host $sys_docs_host $sys_lists_host
+    $sys_dns1_host $sys_dns2_host $FTPINCOMING_DIR $FTPFILES_DIR
+    $sys_urlroot $sf_cache_dir $sys_name $sys_themeroot
+    $sys_news_group $sys_dbhost $sys_dbname $sys_dbuser $sys_dbpasswd
+    $sys_ldap_base_dn $sys_ldap_host $admin_login $admin_password
+    $server_admin $domain_name $newsadmin_groupid $statsadmin_groupid
+    $skill_list/ ;
+use vars qw/$pluginname $pluginid/ ;
+
+require ("/usr/lib/gforge/lib/include.pl") ; # Include a few predefined functions 
+require ("/usr/lib/gforge/lib/sqlparser.pm") ; # Our magic SQL parser
+require ("/usr/lib/gforge/lib/sqlhelper.pm") ; # Our SQL functions
+
+&debug ("You'll see some debugging info during this installation.") ;
+&debug ("Do not worry unless told otherwise.") ;
+
+&db_connect ;
+
+# &debug ("Connected to the database OK.") ;
+
+$pluginname = "scmsvn" ;
+$pluginid = -1 ;
+
+$dbh->{AutoCommit} = 0;
+$dbh->{RaiseError} = 1;
+eval {
+    my ($sth, @array, $version, $action, $path, $target, $rname) ;
+
+    $pluginid = &get_plugin_id ($dbh, $pluginname) ;
+    &remove_plugin_from_groups ($dbh, $pluginid) ;
+    &remove_plugin_from_users ($dbh, $pluginid) ;
+
+    my $pattern = "plugin_" . $pluginname . '_%' ;
+
+    $query = "SELECT relname FROM pg_class WHERE relname LIKE '$pattern' AND relkind='v'" ;
+    $sth = $dbh->prepare ($query) ;
+    $sth->execute () ;
+    while (@array = $sth->fetchrow_array ()) {
+	$rname = $array [0] ;
+	&drop_view_if_exists ($dbh, $rname) ;
+    }
+    $sth->finish () ;
+
+    $query = "SELECT relname FROM pg_class WHERE relname LIKE '$pattern' AND relkind='r'" ;
+    $sth = $dbh->prepare ($query) ;
+    $sth->execute () ;
+    while (@array = $sth->fetchrow_array ()) {
+	$rname = $array [0] ;
+	&drop_table_if_exists ($dbh, $rname) ;
+    }
+    $sth->finish () ;
+
+    $query = "SELECT relname FROM pg_class WHERE relname LIKE '$pattern' AND relkind='i'" ;
+    $sth = $dbh->prepare ($query) ;
+    $sth->execute () ;
+    while (@array = $sth->fetchrow_array ()) {
+	$rname = $array [0] ;
+	&drop_index_if_exists ($dbh, $rname) ;
+    }
+    $sth->finish () ;
+
+    $query = "SELECT relname FROM pg_class WHERE relname LIKE '$pattern' AND relkind='S'" ;
+    $sth = $dbh->prepare ($query) ;
+    $sth->execute () ;
+    while (@array = $sth->fetchrow_array ()) {
+	$rname = $array [0] ;
+	&drop_sequence_if_exists ($dbh, $rname) ;
+    }
+    $sth->finish () ;
+
+    $dbh->commit ();
+
+
+    &debug ("It seems your database deletion went well and smoothly.  That's cool.") ;
+    &debug ("Please enjoy using Debian GForge.") ;
+
+    # There should be a commit at the end of every block above.
+    # If there is not, then it might be symptomatic of a problem.
+    # For safety, we roll back.
+    $dbh->rollback ();
+};
+
+if ($@) {
+    warn "Transaction aborted because $@" ;
+    &debug ("Transaction aborted because $@") ;
+    &debug ("Last SQL query was:\n$query\n(end of query)") ;
+    $dbh->rollback ;
+    &debug ("Please report this bug on the Debian bug-tracking system.") ;
+    &debug ("Please include the previous messages as well to help debugging.") ;
+    &debug ("You should not worry too much about this,") ;
+    &debug ("your DB is still in a consistent state and should be usable.") ;
+    exit 1 ;
+}
+
+$dbh->rollback ;
+$dbh->disconnect ;


Property changes on: trunk/gforge_base/evolvisforge/plugins.test/scmsvn/bin/db-delete.pl
___________________________________________________________________
Added: svn:executable
   + *

Added: trunk/gforge_base/evolvisforge/plugins.test/scmsvn/bin/db-upgrade.pl
===================================================================
--- trunk/gforge_base/evolvisforge/plugins.test/scmsvn/bin/db-upgrade.pl	                        (rev 0)
+++ trunk/gforge_base/evolvisforge/plugins.test/scmsvn/bin/db-upgrade.pl	2010-02-26 00:19:01 UTC (rev 4850)
@@ -0,0 +1,92 @@
+#!/usr/bin/perl -w
+#
+# $Id$
+#
+# Debian-specific script to upgrade the database between releases
+# Roland Mas <lolando at debian.org>
+
+use strict ;
+use diagnostics ;
+
+use DBI ;
+use MIME::Base64 ;
+use HTML::Entities ;
+
+use vars qw/$dbh @reqlist $query/ ;
+use vars qw/$sys_default_domain $sys_cvs_host $sys_download_host
+    $sys_shell_host $sys_users_host $sys_docs_host $sys_lists_host
+    $sys_dns1_host $sys_dns2_host $FTPINCOMING_DIR $FTPFILES_DIR
+    $sys_urlroot $sf_cache_dir $sys_name $sys_themeroot
+    $sys_news_group $sys_dbhost $sys_dbname $sys_dbuser $sys_dbpasswd
+    $sys_ldap_base_dn $sys_ldap_host $admin_login $admin_password
+    $server_admin $domain_name $newsadmin_groupid $statsadmin_groupid
+    $skill_list/ ;
+use vars qw/$pluginname/ ;
+
+require ("/usr/lib/gforge/lib/include.pl") ; # Include a few predefined functions 
+require ("/usr/lib/gforge/lib/sqlparser.pm") ; # Our magic SQL parser
+require ("/usr/lib/gforge/lib/sqlhelper.pm") ; # Our SQL functions
+
+&debug ("You'll see some debugging info during this installation.") ;
+&debug ("Do not worry unless told otherwise.") ;
+
+&db_connect ;
+
+# &debug ("Connected to the database OK.") ;
+
+$pluginname = "scmsvn" ;
+
+$dbh->{AutoCommit} = 0;
+$dbh->{RaiseError} = 1;
+eval {
+    my ($sth, @array, $version, $path, $target) ;
+
+    &create_plugin_metadata_table ($dbh, $pluginname, "0") ;
+    
+    $version = &get_plugin_db_version ($dbh, $pluginname) ;
+    $target = "0.1" ;
+    if (&is_lesser ($version, $target)) {
+#	my @filelist = ( "/usr/lib/gforge/plugins/$pluginname/lib/$pluginname-init.sql" ) ;
+#	
+#	foreach my $file (@filelist) {
+#	    &debug ("Processing $file") ;
+#	    @reqlist = @{ &parse_sql_file ($file) } ;
+#	    
+#	    foreach my $s (@reqlist) {
+#		$query = $s ;
+#		# &debug ($query) ;
+#		$sth = $dbh->prepare ($query) ;
+#		$sth->execute () ;
+#		$sth->finish () ;
+#	    }
+#	}
+#	@reqlist = () ;
+	
+	&update_plugin_db_version ($dbh, $pluginname, $target) ;
+	&debug ("Committing.") ;
+	$dbh->commit () ;
+    }
+    
+    &debug ("It seems your database install/upgrade went well and smoothly.  That's cool.") ;
+    &debug ("Please enjoy using Debian GForge.") ;
+
+    # There should be a commit at the end of every block above.
+    # If there is not, then it might be symptomatic of a problem.
+    # For safety, we roll back.
+    $dbh->rollback ();
+};
+
+if ($@) {
+    warn "Transaction aborted because $@" ;
+    &debug ("Transaction aborted because $@") ;
+    &debug ("Last SQL query was:\n$query\n(end of query)") ;
+    $dbh->rollback ;
+    &debug ("Please report this bug on the Debian bug-tracking system.") ;
+    &debug ("Please include the previous messages as well to help debugging.") ;
+    &debug ("You should not worry too much about this,") ;
+    &debug ("your DB is still in a consistent state and should be usable.") ;
+    exit 1 ;
+}
+
+$dbh->rollback ;
+$dbh->disconnect ;


Property changes on: trunk/gforge_base/evolvisforge/plugins.test/scmsvn/bin/db-upgrade.pl
___________________________________________________________________
Added: svn:executable
   + *

Added: trunk/gforge_base/evolvisforge/plugins.test/scmsvn/bin/install-svn.sh
===================================================================
--- trunk/gforge_base/evolvisforge/plugins.test/scmsvn/bin/install-svn.sh	                        (rev 0)
+++ trunk/gforge_base/evolvisforge/plugins.test/scmsvn/bin/install-svn.sh	2010-02-26 00:19:01 UTC (rev 4850)
@@ -0,0 +1,37 @@
+#! /bin/sh
+# 
+# $Id$
+#
+# Configure Subversion for Sourceforge
+# Roland Mas, Gforge
+
+
+
+set -e
+
+if [ $(id -u) != 0 ] ; then
+    echo "You must be root to run this, please enter passwd"
+    exec su -c "$0 $1"
+fi
+
+gforge_chroot=$(grep ^gforge_chroot= /etc/gforge/gforge.conf | cut -d= -f2-)
+
+case "$1" in
+    configure)
+        echo "Modifying inetd for Subversion server"
+        # First, dedupe the commented lines
+        update-inetd --remove  "svnserve stream tcp nowait.400 gforge_scm /usr/bin/svnserve svnserve -i -r $gforge_chroot" || true
+        update-inetd --remove  "svn stream tcp nowait.400 scm-gforge /usr/bin/svnserve svnserve -i -r $gforge_chroot" || true
+        update-inetd --add  "svn stream tcp nowait.400 scm-gforge /usr/bin/svnserve svnserve -i -r $gforge_chroot"
+	/usr/lib/gforge/plugins/scmsvn/bin/install-viewcvs.sh
+	;;
+
+    purge)
+        update-inetd --remove  "svnserve stream tcp nowait.400 gforge_scm /usr/bin/svnserve svnserve -i -r $gforge_chroot"
+        update-inetd --remove  "svn stream tcp nowait.400 scm-gforge /usr/bin/svnserve svnserve -i -r $gforge_chroot"
+	;;
+
+    *)
+	echo "Usage: $0 {configure|purge}"
+	exit 1
+esac


Property changes on: trunk/gforge_base/evolvisforge/plugins.test/scmsvn/bin/install-svn.sh
___________________________________________________________________
Added: svn:executable
   + *

Added: trunk/gforge_base/evolvisforge/plugins.test/scmsvn/bin/install-viewcvs.sh
===================================================================
--- trunk/gforge_base/evolvisforge/plugins.test/scmsvn/bin/install-viewcvs.sh	                        (rev 0)
+++ trunk/gforge_base/evolvisforge/plugins.test/scmsvn/bin/install-viewcvs.sh	2010-02-26 00:19:01 UTC (rev 4850)
@@ -0,0 +1,46 @@
+#! /bin/sh
+
+# Create ViewCVS config for GForge from the own ViewCVS conf file.
+# Should be launched each time you change the ViewCVS conf is modified.
+
+server_admin=$(grep ^server_admin= /etc/gforge/gforge.conf | cut -d= -f2-)
+gforge_chroot=$(grep ^gforge_chroot= /etc/gforge/gforge.conf | cut -d= -f2-)
+svndir=$(grep ^svndir= /etc/gforge/gforge.conf | cut -d= -f2-)
+cvsdir=$(grep ^cvsdir= /etc/gforge/gforge.conf | cut -d= -f2-)
+
+python <<EOF
+import sys
+import os
+import string
+import ConfigParser
+r = ConfigParser.RawConfigParser ()
+r.read ("/etc/viewcvs/viewcvs.conf")
+r.set ("general","svn_roots","")
+r.set ("general","cvs_roots","")
+r.set ("general","root_parents","$gforge_chroot/$svndir : svn")
+# uncomment the next line if you want to use ViewCVS to browse CVS repositories
+#r.set ("general","root_parents","$gforge_chroot/$svndir : svn, $gforge_chroot/$cvsdir : cvs")
+r.set ("general","address","<a href=\"mailto:$server_admin\">CVS/SVN Admin</a>");
+r.set ("general","default_root", "")
+r.set ("templates","query","/etc/gforge/plugins/scmsvn/viewcvs/templates/query.ezt")
+r.set ("templates","diff","/etc/gforge/plugins/scmsvn/viewcvs/templates/diff.ezt")
+r.set ("templates","graph","/etc/gforge/plugins/scmsvn/viewcvs/templates/graph.ezt")
+r.set ("templates","annotate","/etc/gforge/plugins/scmsvn/viewcvs/templates/annotate.ezt")
+r.set ("templates","markup","/etc/gforge/plugins/scmsvn/viewcvs/templates/markup.ezt")
+r.set ("templates","revision","/etc/gforge/plugins/scmsvn/viewcvs/templates/revision.ezt")
+r.set ("templates","query_form","/etc/gforge/plugins/scmsvn/viewcvs/templates/query_form.ezt")
+r.set ("templates","query_results","/etc/gforge/plugins/scmsvn/viewcvs/templates/query_results.ezt")
+r.set ("templates","error","/etc/gforge/plugins/scmsvn/viewcvs/templates/error.ezt")
+r.set ("templates","directory","/etc/gforge/plugins/scmsvn/viewcvs/templates/directory.ezt")
+r.set ("templates","log","/etc/gforge/plugins/scmsvn/viewcvs/templates/log_table.ezt")
+r.set ("options", "generate_etags", 0)
+r.set ("options","docroot","/plugins/scmsvn/viewcvs");
+r.set ("options","icons","/plugins/scmsvn/viewcvs/icons");
+r.write (open ("/var/lib/gforge/etc/viewcvs.conf", "w"))
+EOF
+
+sed 's,pathname = CONF_PATHNAME .*,pathname = "/var/lib/gforge/etc/viewcvs.conf",' \
+    /usr/lib/python2.3/site-packages/viewcvs/viewcvs.py > /var/lib/gforge/etc/viewcvs.py
+
+echo "Created ViewCVS conf for GForge - make sure to rerun $0 \
+each time you change the ViewCVS conf"


Property changes on: trunk/gforge_base/evolvisforge/plugins.test/scmsvn/bin/install-viewcvs.sh
___________________________________________________________________
Added: svn:executable
   + *

Added: trunk/gforge_base/evolvisforge/plugins.test/scmsvn/bin/snapshots.sh
===================================================================
--- trunk/gforge_base/evolvisforge/plugins.test/scmsvn/bin/snapshots.sh	                        (rev 0)
+++ trunk/gforge_base/evolvisforge/plugins.test/scmsvn/bin/snapshots.sh	2010-02-26 00:19:01 UTC (rev 4850)
@@ -0,0 +1,46 @@
+#!/bin/sh
+#
+# Generate SVN trunk repositories snapshots.
+
+set -e
+#set -x
+
+if [  $(id -u) != 0 ] ; then
+    echo "You must be root to run this, please enter passwd"
+    exec su -c "$0 $1"
+fi
+
+SVNROOT=/var/lib/gforge/chroot/svnroot
+SCMSNAPSHOTSDIR=/var/lib/gforge/scmsnapshots
+TMPDIR=/tmp
+
+case "$1" in
+    generate)
+	# Create temporary dir
+	work_dir=$TMPDIR/gforge-plugin-scnsvn.$$
+	trap "rm -rf $work_dir" ERR EXIT
+
+        today=`date +%Y-%m-%d`
+	cd $SVNROOT
+        ls | while read dir ; do
+            # Make tgz archive
+	    mkdir -p $work_dir/$dir-scm-$today
+	    cd $work_dir
+	    svn checkout -q file://$SVNROOT/$dir/trunk $dir-scm-$today 2>/dev/null || 
+	    ( rm -fr $dir-scm-$today; svn checkout -q file://$SVNROOT/$dir $dir-scm-$today)
+            tar czf $dir-scm-latest.tar.gz $dir-scm-$today
+            mv $dir-scm-latest.tar.gz $SCMSNAPSHOTSDIR
+        done
+        ;;
+
+    update)
+        ;;
+
+    purge)
+        ;;
+
+    *)
+        echo "Usage: $0 {generate}"
+        exit 1
+        ;;
+esac

Added: trunk/gforge_base/evolvisforge/plugins.test/scmsvn/bin/svn-create.php
===================================================================
--- trunk/gforge_base/evolvisforge/plugins.test/scmsvn/bin/svn-create.php	                        (rev 0)
+++ trunk/gforge_base/evolvisforge/plugins.test/scmsvn/bin/svn-create.php	2010-02-26 00:19:01 UTC (rev 4850)
@@ -0,0 +1,144 @@
+#! /usr/bin/php4 -f
+<?php
+/**
+ *	This file will create blank SVN repositories for the SVN-over-ssh 
+ *  authentication method.
+ *
+ * Copyright 2003 (c) GForge, LLC
+ *
+ * @version   $Id$
+ *
+ * This file is part of GForge.
+ *
+ * GForge 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.
+ *
+ * GForge is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with GForge; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  US
+ */
+
+require ('squal_pre.php');
+require ('common/include/cron_utils.php');
+
+//	/path/to/svn/bin/
+$svn_path='/usr/bin';
+
+//	Where is the SVN repository?
+$svn='/var/svn';
+
+// Whether to have all projects in a single repository
+$one_repository = false;
+
+//if everything is in one repository, we need a working checkout to use
+$repos_co = '/var/svn-co';
+
+//type of repository, whether filepassthru or bdb
+//use fsfs to be able to use ViewCVS
+$repos_type = ' --fs-type fsfs ';
+//$repos_type = '';
+
+/*
+	This script create the gforge dav/svn/docman repositories
+*/
+
+$err .= "Creating Groups at ". $svn."\n";
+
+$res = db_query("SELECT is_public,enable_anonscm,unix_group_name 
+	FROM groups, plugins, group_plugin 
+	WHERE groups.status != 'P' 
+	AND groups.group_id=group_plugin.group_id
+	AND group_plugin.plugin_id=plugins.plugin_id
+	AND plugins.plugin_name='scmsvn'");
+
+if (!$res) {
+	$err .=  "Error! Database Query Failed: ".db_error();
+	echo $err;
+	exit;
+}
+
+//
+//	If using a single large repository, create the checkout if necessary
+//
+if ($one_repository && !is_dir($repos_co)) {
+	$err .= "Error! Checkout Repository Does Not Exist!";
+	echo $err;
+	exit;
+} elseif (!is_dir($svn)) {
+	passthru ("mkdir $svn");
+}
+
+while ( $row =& db_fetch_array($res) ) {
+	if ($one_repository) {
+		passthru ("[ ! -d $repos_co/".$row["unix_group_name"]." ] && mkdir -p $repos_co/".$row["unix_group_name"]."/ && $svn_path/svn add $repos_co/".$row["unix_group_name"]);
+	} else {
+		passthru ("[ ! -d $svn/".$row["unix_group_name"]." ] &&  $svn_path/svnadmin create $repos_type $svn/".$row["unix_group_name"]);
+		svn_hooks("$svn/".$row["unix_group_name"]);
+		addsvnmail("$svn/".$row["unix_group_name"],$row["unix_group_name"]);
+		passthru("chown nobody:".$row["unix_group_name"]." -R $svn/".$row["unix_group_name"]."/");
+	}
+}
+
+/**
+* addsvnmail($filePath,$unix_group_name)
+* This function add the commit-email.pl into post-commit
+* The commit-email.pl must be in same directory of this script
+* Copyright 2004 (c) GForge
+* @autor Luis Alberto Hurtado Alvarado <luis at gforgegroup.com>
+* @param $filePath The path to svn repository
+* @param $unix_group_name The project name.
+*/
+function addsvnmail($filePath,$unix_group_name) {
+	global $sys_lists_host;
+	$pathsvnmail = dirname($_SERVER['_']).'/commit-email.pl '.' "$REPOS" '.' "$REV" '.$unix_group_name.'-commits@'.$sys_lists_host;
+	writeFile($filePath.'/hooks/post-commit',$pathsvnmail);
+}
+
+/**
+* svn_hooks($filePath)
+* This function create the post-commit file in svn hooks
+* Copyright 2004 (c) GForge
+* @autor Luis Alberto Hurtado Alvarado <luis at gforgegroup.com>
+* @param $filePath The path to svn repository
+*/
+function svn_hooks($filePath) {
+	system ("cp $filePath/hooks/post-commit.tmpl $filePath/hooks/post-commit");
+	system("chmod +x ".$filePath."/hooks/post-commit");
+}
+
+/**
+* writeFile($filePath, $content)
+* This function add the mail
+* Copyright 2004 (c) GForge
+* @autor Luis Alberto Hurtado Alvarado <luis at gforgegroup.com>
+* @param $filePath The path to svn repository
+* @param $content The mail
+*/
+function writeFile($filePath, $content) {
+	$file = fopen($filePath, 'a');
+	flock($file, LOCK_EX);
+	ftruncate($file, 0);
+	rewind($file);
+	if(!empty($content)) {
+		fwrite($file, '#!/bin/sh'."\n");
+		fwrite($file, 'REPOS="$1"'."\n");
+		fwrite($file, 'REV="$2"'."\n");
+		fwrite($file, $content);
+	}
+	flock($file, LOCK_UN);
+	fclose($file);
+}
+
+if ($one_repository) {
+	passthru ("cd $repos_co && $svn_path/svn commit -m\"\"");
+}
+
+cron_entry(21,$err);
+?>


Property changes on: trunk/gforge_base/evolvisforge/plugins.test/scmsvn/bin/svn-create.php
___________________________________________________________________
Added: svn:executable
   + *

Added: trunk/gforge_base/evolvisforge/plugins.test/scmsvn/bin/svn_dump.pl
===================================================================
--- trunk/gforge_base/evolvisforge/plugins.test/scmsvn/bin/svn_dump.pl	                        (rev 0)
+++ trunk/gforge_base/evolvisforge/plugins.test/scmsvn/bin/svn_dump.pl	2010-02-26 00:19:01 UTC (rev 4850)
@@ -0,0 +1,61 @@
+#!/usr/bin/perl
+#
+# $Id$
+#
+# svn_dump.pl - script to dump data from the database 
+#		       inspired from sourceforge scripts
+# Christian Bayle <bayle at debian.org>
+#
+use DBI;
+use Sys::Hostname;
+
+my $scm = 'scmsvn';
+require("/usr/lib/gforge/lib/include.pl");  # Include all the predefined functions
+require("/etc/gforge/plugins/$scm/config.pl"); # Include plugin config vars
+
+my $group_array = ();
+my $verbose = 0;
+my $scm_file = $file_dir . "/dumps/$scm.dump";
+
+if($verbose) {print ("\nConnecting to database");}
+
+if ( "$sys_dbname" ne "gforge" || "$sys_dbuser" ne "gforge" ) {
+$dbh ||= DBI->connect("DBI:Pg:dbname=$sys_dbname","$sys_dbuser","$sys_dbpasswd");
+} else {
+$dbh ||= DBI->connect("DBI:Pg:dbname=$sys_dbname");
+}
+die "Cannot connect to database: $!" if ( ! $dbh );
+
+if($verbose) {print ("\nGetting group list");}
+
+# Dump the Groups Table information
+
+$query= "SELECT groups.group_id,groups.unix_group_name,groups.status,groups.use_scm,groups.enable_pserver,groups.enable_anonscm FROM groups,group_plugin,plugins WHERE groups.unix_group_name !='' AND groups.group_id=group_plugin.group_id AND group_plugin.plugin_id=plugins.plugin_id AND plugins.plugin_name='".$scm."'";
+# AND cvs_box=$hostname to be added for multi-cvs server support
+
+$c = $dbh->prepare($query);
+$c->execute();
+
+if($verbose) {print ("\nGetting user list per group");}
+while(my ($group_id, $group_name, $status, $use_scm, $enable_pserver, $enable_anonscm) = $c->fetchrow()) {
+
+	my $new_query = "SELECT users.user_name AS user_name FROM users,user_group WHERE users.user_id=user_group.user_id AND cvs_flags=1 AND group_id=$group_id";
+	my $d = $dbh->prepare($new_query);
+	$d->execute();
+
+	my $user_list = "";
+	
+	while($user_name = $d->fetchrow()) {
+	   $user_list .= "$user_name,";
+	}
+
+	$grouplist = "$group_name:$status:$group_id:$use_scm:$enable_pserver:$enable_anonscm:$user_list\n";
+	$grouplist =~ s/,$//;
+
+	push @group_array, $grouplist;
+}
+
+# Now write out the files (not necessary, but can give info in case of problems)
+if($verbose) {print ("\nWriting list");}
+write_array_file($scm_file, @group_array);
+system("chmod o-r $scm_file");


Property changes on: trunk/gforge_base/evolvisforge/plugins.test/scmsvn/bin/svn_dump.pl
___________________________________________________________________
Added: svn:executable
   + *

Added: trunk/gforge_base/evolvisforge/plugins.test/scmsvn/bin/svn_update.pl
===================================================================
--- trunk/gforge_base/evolvisforge/plugins.test/scmsvn/bin/svn_update.pl	                        (rev 0)
+++ trunk/gforge_base/evolvisforge/plugins.test/scmsvn/bin/svn_update.pl	2010-02-26 00:19:01 UTC (rev 4850)
@@ -0,0 +1,82 @@
+#!/usr/bin/perl
+#
+# $Id$
+#
+# svn_update.pl - script to update svn
+#		       inspired from sourceforge scripts
+# Roland Mas <lolando at debian.org>
+# Christian Bayle <bayle at debian.org>
+
+use DBI;
+use Sys::Hostname;
+
+require("/usr/lib/gforge/lib/include.pl"); # Include all the predefined functions
+
+my $group_array = ();
+my $verbose = 0;
+my $svn_file = $file_dir . "/dumps/scmsvn.dump";
+my $anoncvs_uid_add = 50000;
+my $gid_add = 10000;
+
+
+# Script parse out the database dumps and create/update/delete svn
+#                accounts on the client machines
+#
+# Open up all the files that we need.
+#
+if($verbose) {print ("\nReading list");}
+ at group_array = open_array_file($svn_file);
+
+#
+# Loop through @group_array and deal w/ svn.
+#
+if($verbose) {print ("\n\nProcessing SVN\n\n");}
+while ($ln = pop(@group_array)) {
+	chop($ln);
+		($group_name, $status, $group_id, $use_scm, $enable_pserver, $enable_anonscm, $userlist) = split(":", $ln);
+
+	$svn_uid = $dummy_uid;
+	$svn_gid = $group_id + $anoncvs_uid_add;
+	$svn_dir = "$svn_root/$group_name";
+
+	$userlist =~ tr/A-Z/a-z/;
+
+	$group_exists = (-d $grpdir_prefix . '/' . $group_name);
+	$svn_exists = (-d "$svn_root/$group_name");
+
+	# SVN repository creation
+	if ($group_exists && !$svn_exists && $use_scm && $status eq 'A' && !(-e "$svn_root/$group_name/format")) {
+
+		# This for the first time
+		if (!(-d "$svn_root")) {
+		    if($verbose){print("Creating $svn_root\n");}
+		    system("mkdir -p $svn_root");
+		}
+		if($verbose){print("Creating a Subversion Repository for: $group_name\n");}
+		# Let's create a Subversion repository for this group
+		
+		# First create the repository
+		# Unix right will lock access to all users not in the
+		# group including ViewCVS when anoncvs is not enabled
+		mkdir $cvs_dir, 0775;
+		# Used fsfs backend because ViewCVS (apache) needs
+		# write permission with default backend
+		system("/usr/bin/svnadmin create --fs-type fsfs $svn_dir");
+		
+		# set group ownership, anonymous group user
+		system("chown -R $svn_uid:$svn_gid $svn_dir");
+		system("chmod -R g+rw $svn_dir");
+		# s bit to have all owned by group
+		system("find $svn_dir -type d | xargs chmod g+s");
+	} else {
+		if($verbose) {print("group already exits: $group_name \n\n");}
+	}
+
+	# Right management
+	if ($group_exists && $use_scm && $status eq 'A'){
+		chmod 02775, "$svn_dir";
+		# TODO restrict permission when $enable_anonscm is
+		# true thanks subversion.conf and maybe unix rights
+		# also
+	}
+}


Property changes on: trunk/gforge_base/evolvisforge/plugins.test/scmsvn/bin/svn_update.pl
___________________________________________________________________
Added: svn:executable
   + *

Added: trunk/gforge_base/evolvisforge/plugins.test/scmsvn/cgi-bin/viewcvs.cgi
===================================================================
--- trunk/gforge_base/evolvisforge/plugins.test/scmsvn/cgi-bin/viewcvs.cgi	                        (rev 0)
+++ trunk/gforge_base/evolvisforge/plugins.test/scmsvn/cgi-bin/viewcvs.cgi	2010-02-26 00:19:01 UTC (rev 4850)
@@ -0,0 +1,32 @@
+#!/usr/bin/python
+# -*-python-*-
+#
+# Copyright (C) 1999-2002 The ViewCVS Group. All Rights Reserved.
+# Patched by Roland Mas <lolando at debian.org>
+#
+# By using this file, you agree to the terms and conditions set forth in
+# the LICENSE.html file which can be found at the top level of the ViewCVS
+# distribution or at http://viewcvs.sourceforge.net/license-1.html.
+#
+# Contact information:
+#   Greg Stein, PO Box 760, Palo Alto, CA, 94302
+#   gstein at lyra.org, http://viewcvs.sourceforge.net/
+#
+# -----------------------------------------------------------------------
+#
+# viewcvs: View CVS repositories via a web browser
+#
+# -----------------------------------------------------------------------
+
+import os
+import sys
+
+sys.path.insert(0, "/usr/lib/python2.3/site-packages/viewcvs/")
+sys.path.insert(0, "/var/lib/gforge/etc/")
+
+# go do the work
+import sapi
+import viewcvs
+
+os.umask(0002)
+viewcvs.main(sapi.CgiServer())


Property changes on: trunk/gforge_base/evolvisforge/plugins.test/scmsvn/cgi-bin/viewcvs.cgi
___________________________________________________________________
Added: svn:executable
   + *

Added: trunk/gforge_base/evolvisforge/plugins.test/scmsvn/common/SVNPlugin.class
===================================================================
--- trunk/gforge_base/evolvisforge/plugins.test/scmsvn/common/SVNPlugin.class	                        (rev 0)
+++ trunk/gforge_base/evolvisforge/plugins.test/scmsvn/common/SVNPlugin.class	2010-02-26 00:19:01 UTC (rev 4850)
@@ -0,0 +1,319 @@
+<?php
+/** Subversion plugin for Gforge
+ * Copyright 2003 Roland Mas <lolando at debian.org>
+ * Copyright 2004 Roland Mas <roland at gnurandal.com> 
+ *				The Gforge Group, LLC <http://gforgegroup.com/>
+ * Based on the CVS plugin, which was derived from Gforge, which was
+ * derived from Sourceforge
+ *
+ * This file is not part of Gforge
+ *
+ * This plugin, like Gforge, 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.
+ *
+ * GForge is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with GForge; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  US
+ */
+
+require_once('common/include/User.class');
+
+class SVNPlugin extends SCM {
+	function SVNPlugin () {
+		$this->SCM () ;
+		$this->name = 'scmsvn';
+		$this->text = 'SVN';
+		$this->hooks[] = 'scm_page';
+		$this->hooks[] = 'scm_admin_update';
+		$this->hooks[] = 'scm_admin_page';
+// to be revised		
+ 		$this->hooks[] = 'scm_stats';
+// 		$this->hooks[] = 'group_approved';
+		$this->hooks[] = 'scm_plugin';
+
+		require_once('plugins/scmsvn/config.php') ;
+		
+		$this->default_svn_server = $default_svn_server ;
+		$this->enabled_by_default = $enabled_by_default ;
+		$this->use_ssh = $use_ssh;
+		$this->use_dav = $use_dav;
+		$this->use_ssl = $use_ssl;
+		$this->svn_root = $svn_root;
+
+		$this->register () ;
+	}
+	
+	function getDefaultServer() {
+		return $this->default_svn_server ;
+	}
+
+	function CallHook ($hookname, $params) {
+		global $Language, $HTML ;
+		
+		switch ($hookname) {
+		case 'scm_page':
+			$group_id = $params['group_id'] ;
+			$this->getPage ($group_id) ;
+			break ;
+		case 'scm_admin_update':
+			$this->AdminUpdate ($params) ;
+			break ;
+		case 'scm_admin_page':
+			$this->getAdminPage ($params) ;
+			break ;
+		case 'scm_stats':
+			$this->getStats ($params) ;
+			break;
+// 		case 'group_approved':
+// 			$this->groupApproved ($params) ;
+// 			break;
+		case 'scm_plugin':
+			$scm_plugins=& $params['scm_plugins'];
+			$scm_plugins[]=$this->name;
+			break;
+		default:
+			// Forgot something
+		}
+	}
+
+	function getPage ($group_id) {
+		global $Language, $HTML ;
+
+		$project =& group_get_object($group_id);
+		if (!$project || !is_object($project)) {
+			return false;
+		} elseif ($project->isError()) {
+			return false;
+		}
+
+		if ($project->usesPlugin ($this->name)) {
+
+			// SVN browser links must be displayed if
+			// project enables anon SVN or if logged-in
+			// user is a member of the group
+			$displaySvnBrowser = $project->enableAnonSCM();
+			if(session_loggedin()) {
+				$perm =& $project->getPermission(session_get_user());
+				if ($perm && is_object($perm) && !$perm->isError() && $perm->isMember()) {
+					$displaySvnBrowser = true;
+				}
+			}
+
+			// ######################## Table for summary info
+			?>
+			<table width="100%">
+			<tr valign="top">
+				<td width="65%">
+				<?php
+				print $Language->getText('plugin_scmsvn','documentation');
+
+				// ######################## Anonymous SVN Instructions
+				if ($project->enableAnonSCM()) {
+					print $Language->getText('plugin_scmsvn', 'anonsvn');
+					print '<p>';
+					if ($this->use_ssh) {
+						print '<tt>svn checkout svn://'.$project->getSCMBox().'/'.$this->svn_root.'/'.$project->getUnixName().'</tt><br />';
+					}
+					if ($this->use_dav) {
+						print '<tt>svn checkout http'.(($this->use_ssl) ? 's' : '').'://' . $project->getSCMBox(). '/' . $this->svn_root .'/'. $project->getUnixName() .'</tt><br/>';
+					}
+					print '</p>';
+				}
+	
+				// ######################## Developer Access
+				if ($this->use_ssh) {
+					echo $Language->getText('plugin_scmsvn', 'devsvnssh');
+					print '<p><tt>svn checkout svn+ssh://<i>'.$Language->getText('plugin_scmsvn', 'developername').'</i>@' . $project->getSCMBox() . '/'. $this->svn_root .'/'. $project->getUnixName().'</tt></p>' ;
+				}
+				if ($this->use_dav) {
+					echo $Language->getText('plugin_scmsvn', 'devsvndav');
+					print '<p><tt>svn checkout --username <i>'.$Language->getText('plugin_scmsvn', 'developername').'</i> http'.(($this->use_ssl) ? 's' : '').'://'. $project->getSCMBox() .'/'. $this->svn_root .'/'.$project->getUnixName().'</tt></p>' ;
+				}
+
+				// ######################## SVN Snapshot
+				if ($displaySvnBrowser) {
+					$filename=$project->getUnixName().'-scm-latest.tar.gz';
+					if (file_exists($sys_scm_snapshots_path.'/'.$filename)) {
+						print '<p>[<a href="/snapshots.php?group_id='.$group_id.'">'
+							.$Language->getText('plugin_scmsvn', 'download_snapshot').
+							'</a>]</p>';
+					}
+				}
+				?>
+				</td>
+
+				<td width="35%" valign="top">
+				<?php
+				// ######################## SVN Browsing
+				echo $HTML->boxTop($Language->getText('plugin_scmsvn', 'history'));
+				echo $this->getDetailedStats(array('group_id'=>$group_id)).'<p>';
+				if ($displaySvnBrowser) {
+					echo $Language->getText('plugin_scmsvn', 'browsetree');
+					echo '<p>[<a href="/scm/viewvc.php/?root='.$project->getUnixName().'">'.$Language->getText('plugin_scmsvn', 'browseit').'</a>]</p>' ;
+				}
+
+				echo $HTML->boxBottom();
+				?>
+				</td>
+			</tr>
+			</table>
+			<?php
+		}
+	}
+
+	function AdminUpdate ($params) {
+		$group =& group_get_object($params['group_id']);
+		if (!$group || !is_object($group)) {
+			return false;
+		} elseif ($group->isError()) {
+			return false;
+		}
+		if ( $group->usesPlugin ( $this->name ) ) {
+			if ($params['scmsvn_enable_anon_svn']) {
+				$group->SetUsesAnonSCM(true);
+			} else {
+				$group->SetUsesAnonSCM(false);
+			}
+		}
+	}
+
+	// This function is used to render checkboxes below
+	function c($v) {
+		if ($v) {
+			return 'checked="checked"';
+		} else {
+			return '';
+		}
+	}
+
+	function getAdminPage ($params) {
+		global $Language ;
+		$group =& group_get_object($params['group_id']);
+		if ( $group->usesPlugin ( $this->name ) ) {
+			?>
+			<p><input type="checkbox" name="scmsvn_enable_anon_svn" value="1" <?php echo $this->c($group->enableAnonSCM()); ?> /><strong><?php echo $Language->getText('plugin_scmsvn', 'enable_anonymous_svn') ?></strong></p>
+			<?php
+		}
+	}
+
+	function getStats ($params) {
+		global $Language ;
+		$group_id = $params['group_id'] ;
+		$project =& group_get_object($group_id);
+		if (!$project || !is_object($project)) {
+			return false;
+		} elseif ($project->isError()) {
+			return false;
+		}
+
+		if ($project->usesPlugin ($this->name)) {
+			list($commit_num, $add_num) = $this->getTotalStats($group_id);
+			echo ' (SVN: '.$Language->getText('plugin_scmsvn','svn_updates',array(number_format($commit_num,0),number_format($add_num,0))).')';
+		}
+	}
+
+	// Get the total stats for a group
+	function getTotalStats($group_id) {
+		$result = db_query("
+			SELECT SUM(commits) AS commits, SUM(adds) AS adds
+			FROM stats_cvs_group
+			WHERE group_id='$group_id'");
+		$commit_num = db_result($result,0,0);
+		$add_num	= db_result($result,0,1);
+		if (!$commit_num) {
+			$commit_num=0;
+		}
+		if (!$add_num) {
+			$add_num=0;
+		}
+		return array($commit_num, $add_num);
+	}
+
+	// Not used at the moment and probably useless
+	function groupApproved ($params) {
+		$group_id = $params['group_id'] ;
+		
+		$project =& group_get_object($group_id);
+		if (!$project || !is_object($project)) {
+			return false;
+		} elseif ($project->isError()) {
+			return false;
+		}
+		if ($this->enabled_by_default) {
+			$project->setPluginUse('scmsvn', 1) ;
+		} else {
+			$project->setPluginUse('scmsvn', 0) ;
+		}
+		return true;
+	}
+
+	function getDetailedStats ($params) {
+		global $Language, $HTML;
+		$group_id = $params['group_id'] ;
+
+		$result = db_query('
+			SELECT u.realname, u.user_name, sum(commits) as commits, sum(adds) as adds, sum(adds+commits) as combined
+			FROM stats_cvs_user s, users u
+			WHERE group_id=\''.$group_id.'\' AND s.user_id=u.user_id AND (commits>0 OR adds >0)
+			GROUP BY group_id, realname, user_name
+			ORDER BY combined DESC, realname;
+		');
+
+		if (db_numrows($result) > 0) {
+			$tableHeaders = array(
+				$Language->getText('plugin_scmsvn', 'realname'),
+				$Language->getText('plugin_scmsvn', 'adds'),
+				$Language->getText('plugin_scmsvn', 'commits')
+			);
+			echo $HTML->listTableTop($tableHeaders);
+
+			$i = 0;
+			$total = array('adds' => 0, 'commits' => 0);
+
+			while($data = db_fetch_array($result)) {
+				echo '<tr '. $HTML->boxGetAltRowStyle($i) .'>';
+				echo '<td width="50%">' .
+					'<a href="/users/'.$data['user_name'].'/">'.$data['realname'].'</a>' .
+					'</td><td width="25%" align="right">'.$data['adds']. '</td>'.
+					'<td width="25%" align="right">'.$data['commits'].'</td></tr>';
+				$total['adds'] += $data['adds'];
+				$total['commits'] += $data['commits'];
+				$i++;
+			}
+			list($commit_num, $add_num) = $this->getTotalStats($group_id);
+			if ($commit_num > $total['commits'] ||
+				$add_num > $total['adds']) {
+				echo '<tr '. $HTML->boxGetAltRowStyle($i) .'>';
+				echo '<td width="50%">' .
+					$Language->getText('plugin_scmsvn', 'unknown') .
+					'</td><td width="25%" align="right">'.
+					($add_num - $total['adds']) . '</td>'.
+					'<td width="25%" align="right">'.
+					($commit_num - $total['commits']) .
+					'</td></tr>';
+				$i++;
+			}
+			echo '<tr '. $HTML->boxGetAltRowStyle($i) .'>';
+			echo '<td width="50%"><strong>'.$Language->getText('plugin_scmsvn', 'total').':</strong></td>'.
+				'<td width="25%" align="right"><strong>'.$add_num. '</strong></td>'.
+				'<td width="25%" align="right"><strong>'.$commit_num.'</strong></td>';
+			echo '</tr>';
+			echo $HTML->listTableBottom();
+			echo '<hr size="1" />';
+		}
+	}
+}
+
+// Local Variables:
+// mode: php
+// c-file-style: "bsd"
+// End:
+
+?>

Added: trunk/gforge_base/evolvisforge/plugins.test/scmsvn/common/languages/Base.tab
===================================================================
--- trunk/gforge_base/evolvisforge/plugins.test/scmsvn/common/languages/Base.tab	                        (rev 0)
+++ trunk/gforge_base/evolvisforge/plugins.test/scmsvn/common/languages/Base.tab	2010-02-26 00:19:01 UTC (rev 4850)
@@ -0,0 +1,24 @@
+plugin_scmsvn	anonsvn	<p><b>Anonymous Subversion Access</b></p><p>This project's SVN repository can be checked out through anonymous access with the following command(s).</p>
+plugin_scmsvn	svn_repository	SVN Repository
+plugin_scmsvn	developername	developername
+plugin_scmsvn	error_only_projects_can_use_svn	Error, Only Projects Can Use SVN
+plugin_scmsvn	error_this_project_has_turned_off	Error This Project Has Turned Off SVN
+plugin_scmsvn	history	Repository History
+plugin_scmsvn	nohistory	This project has no SVN history.
+plugin_scmsvn	section	Project: $1
+plugin_scmsvn	title	SCM
+plugin_scmsvn	admin	Administration
+plugin_scmsvn	download_snapshot	Download The Nightly SVN Tree Snapshot
+plugin_scmsvn	documentation	<p>Documentation for Subversion (sometimes referred to as "SVN") is available <a href="http://svnbook.red-bean.com/">here</a>.</p>
+plugin_scmsvn	devsvnssh	<p><b>Developer Subversion Access via SSH</b></p><p>Only project developers can access the SVN tree via this method. SSH must be installed on your client machine. Substitute <i>developername</i> with the proper values. Enter your site password when prompted.</p>
+plugin_scmsvn	devsvndav	<p><b>Developer Subversion Access via DAV</b></p><p>Only project developers can access the SVN tree via this method. Substitute <i>developername</i> with the proper values. Enter your site password when prompted.</p>
+plugin_scmsvn	enable_svn	Use Subversion
+plugin_scmsvn	enable_anonymous_svn	Enable Anonymous Access
+plugin_scmsvn	browseit	Browse Subversion Repository
+plugin_scmsvn	browsetree	<b>Browse the Subversion Tree</b><p>Browsing the SVN tree gives you a great view into the current status of this project's code. You may also view the complete histories of any file in the repository.</p>
+plugin_scmsvn	realname	Name
+plugin_scmsvn	adds	Adds
+plugin_scmsvn	commits	Updates
+plugin_scmsvn	unknown	Unknown
+plugin_scmsvn	total	Total
+plugin_scmsvn	svn_updates	<strong>$1</strong> updates, <strong>$2</strong> adds

Added: trunk/gforge_base/evolvisforge/plugins.test/scmsvn/common/languages/French.tab
===================================================================
--- trunk/gforge_base/evolvisforge/plugins.test/scmsvn/common/languages/French.tab	                        (rev 0)
+++ trunk/gforge_base/evolvisforge/plugins.test/scmsvn/common/languages/French.tab	2010-02-26 00:19:01 UTC (rev 4850)
@@ -0,0 +1,24 @@
+plugin_scmsvn	admin	Administration
+plugin_scmsvn	anonsvn	<p><b>Accès Subversion anonyme</b></p><p>Le dépôt Subversion de ce projet peut être récupéré anonymement en utilisant la(les) commande(s) suivante(s).</p>
+plugin_scmsvn	browseit	Parcourir le dépôt Subversion
+plugin_scmsvn	browsetree	<b>Parcourir le dépôt Subversion</b><p>Parcourir l'arbre Subversion vous donne une vue d'ensemble du code de ce projet. Vous pouvez également voir l'historique complet de chaque fichier du dépôt.</p>
+plugin_scmsvn	developername	développeur
+plugin_scmsvn	devsvndav	<p><b>Accès Subversion pour développeur via DAV</b></p><p>Seuls les développeurs d'un projet peuvent accéder à l'arbre Subversion par cette méthode. Remplacez <i>developername</i> par la valeur appropriée. Fournissez votre mot de passe du site lorsqu'on vous le demande.</p>
+plugin_scmsvn	devsvnssh	<p><b>Accès Subversion pour développeur via SSH</b></p><p>Seuls les développeurs d'un projet peuvent accéder à l'arbre Subversion par cette méthode. SSH doit être installé sur votre machine cliente. Remplacez <i>developername</i> par la valeur appropriée. Fournissez votre mot de passe du site lorsqu'on vous le demande.</p>
+plugin_scmsvn	documentation	<p>Pour toute information complémentaire, vous pouvez vous référer à la <a href="http://svnbook.red-bean.com/">documentation de Subversion</a>.</p>
+plugin_scmsvn	download_snapshot	Télécharger le snapshot nocturne de l'arbre Subversion
+plugin_scmsvn	enable_svn	Utiliser Subversion
+plugin_scmsvn	enable_anonymous_svn	Activer l'accès anonyme
+plugin_scmsvn	error_only_projects_can_use_svn	Erreur : seuls les projets peuvent utiliser Subversion
+plugin_scmsvn	error_this_project_has_turned_off	Erreur : ce projet a désactivé Subversion.
+plugin_scmsvn	history	Historique du dépôt
+plugin_scmsvn	nohistory	Ce projet n'a pas de dépôt Subversion.
+plugin_scmsvn	section	Projet : $1
+plugin_scmsvn	title	Sources
+plugin_scmsvn	svn_repository	Dépôt Subversion
+plugin_scmsvn	adds	Ajouts
+plugin_scmsvn	commits	Commits
+plugin_scmsvn	realname	Nom
+plugin_scmsvn	svn_updates	<strong>$1</strong> commits, <strong>$2</strong> ajouts
+plugin_scmsvn	total	Total
+plugin_scmsvn	unknown	Inconnu	

Added: trunk/gforge_base/evolvisforge/plugins.test/scmsvn/common/languages/Italian.tab
===================================================================
--- trunk/gforge_base/evolvisforge/plugins.test/scmsvn/common/languages/Italian.tab	                        (rev 0)
+++ trunk/gforge_base/evolvisforge/plugins.test/scmsvn/common/languages/Italian.tab	2010-02-26 00:19:01 UTC (rev 4850)
@@ -0,0 +1,24 @@
+plugin_scmsvn	anonsvn	<p><b>Accesso anonimo a Subversion</b></p><p>Il repository di questo progetto pu&ograve; essere estratto tramite accesso anonimo usando il seguente comando:</p>
+plugin_scmsvn	svn_repository	Repository SVN
+plugin_scmsvn	developername	nome sviluppatore
+plugin_scmsvn	error_only_projects_can_use_svn	Errore, solo i progetti possono abilitare SVN
+plugin_scmsvn	error_this_project_has_turned_off	Errore, questo progetto ha disabilitato SVN
+plugin_scmsvn	history	Storia del repository
+plugin_scmsvn	nohistory	Questo progetto non ha storia subversion.
+plugin_scmsvn	section	Progetto: $1
+plugin_scmsvn	title	SCM
+plugin_scmsvn	admin	Amministrazione
+plugin_scmsvn	download_snapshot	Scarica l'immagine notturna del repository SVN
+plugin_scmsvn	documentation	<p>La documentazione per Subversion (spesso anche scritto come "SVN" &egrave; disponibile a <a href="http://svnbook.red-bean.com/">questo</a> indirizzo.</p>
+plugin_scmsvn	devsvnssh	<p><b>Accesso di uno sviluppatore a SVN utilizzando SSH</b></p><p>Solo sviluppatori possono accedere a SVN tramite questo metodo. SSH deve essere installato sulla macchina client. Sostituire <i>nomesviluppatore</i> con il nome della propria utenza. Quando viene richiesta la password, inserire la propria password utilizzata sul sito.</p>
+plugin_scmsvn	devsvndav	<p><b>Accesso di uno sviluppatore a SVN utilizzando DAV</b></p><p>Solo sviluppatori registrati del progetto possono accedere al repository SVN di questo progetto tramite questo metoto. Sostituire <i>nomesviluppatore</i>  con il nome della propria utenza. Quando viene richiesta la password, inserire la propria password utilizzata sul sito.</p>
+plugin_scmsvn	enable_svn	Utilizza Subversion
+plugin_scmsvn	enable_anonymous_svn	Abilita accesso anonimo
+plugin_scmsvn	browseit	Consulta il repository Subversion
+plugin_scmsvn	browsetree	<b>Consulta l'alberatura Subversion</b><p>La consultazione dell'alberatura ti da' una ottima visuale sullo stato attuale del codice del progetto. Puoi anche visualizzare la cronostoria completo di tutti i file nel repository.</p>
+plugin_scmsvn	realname	Sviluppatore
+plugin_scmsvn	adds	Aggiunti
+plugin_scmsvn	commits	Modificati
+plugin_scmsvn	unknown	Sconosciuti
+plugin_scmsvn	total	Totale
+plugin_scmsvn	svn_updates	<strong>$1</strong> modificati, <strong>$2</strong> aggiunti

Added: trunk/gforge_base/evolvisforge/plugins.test/scmsvn/common/languages/Korean.tab
===================================================================
--- trunk/gforge_base/evolvisforge/plugins.test/scmsvn/common/languages/Korean.tab	                        (rev 0)
+++ trunk/gforge_base/evolvisforge/plugins.test/scmsvn/common/languages/Korean.tab	2010-02-26 00:19:01 UTC (rev 4850)
@@ -0,0 +1,24 @@
+plugin_scmsvn	anonsvn	<p><b>익명 Subversion 권한</b></p><p>이 프로젝트의 SVN 저장소는 다음과 같은 방법을 통해 익명으로 체크아웃하실 수 있습니다.</p>
+plugin_scmsvn	svn_repository	SVN 저장소
+plugin_scmsvn	developername	developername
+plugin_scmsvn	error_only_projects_can_use_svn	오류: 프로젝트만이 SVN을 사용할 수 있습니다.
+plugin_scmsvn	error_this_project_has_turned_off	오류: 이 프로젝트는 SVN을 사용하지 않도록 설정되어 있습니다.
+plugin_scmsvn	history	저장소 히스토리
+plugin_scmsvn	nohistory	이 프로젝트는 SVN 히스토리가 없습니다.
+plugin_scmsvn	section	프로젝트: $1
+plugin_scmsvn	title	SCM
+plugin_scmsvn	admin	관리
+plugin_scmsvn	download_snapshot	일일 SVN 트리 스냅샷 내려받기
+plugin_scmsvn	documentation	<p>Subversion(SVN)에 대한 문서는 <a href="http://svnbook.red-bean.com/">여기</a>에서 참고하실 수 있습니다.</p>
+plugin_scmsvn	devsvnssh	<p><b>SSH를 통한 개발자의 Subversion 접근</b></p><p>프로젝트에 개발자로 등록되어 있는 사람만이 이 방법을 사용하실 수 있습니다. 클라이언트 측에 SSH가 설치되어 있어야 합니다. <i>developername</i>을 적절히 바꾸어서 넣어 주시면 됩니다. 비밀번호는 자기 자신의 비밀번호를 입력하세요.</p>
+plugin_scmsvn	devsvndav	<p><b>DAV를 통한 개발자의 Subversion 접근</b></p><p>프로젝트에 개발자로 등록되어 있는 사람만이 이 방법을 사용하실 수 있습니다. <i>developername</i>을 적절히 바꾸어서 넣어 주시면 됩니다. 비밀번호는 자기 자신의 비밀번호를 입력하세요.</p>
+plugin_scmsvn	enable_svn	Subversion 사용함
+plugin_scmsvn	enable_anonymous_svn	익명 접근 허용함
+plugin_scmsvn	browseit	Subversion 저장소 둘러보기
+plugin_scmsvn	browsetree	<b>Subversion 저장소 둘러보기</b><p>SVN 저장소를 둘러보시면 현재 프로젝트가 어떻게 진행되고 있는지 쉽게 살펴보실 수 있습니다. 그리고 저장소 안에서 어떤 특정 파일에 대한 전체 내역도 아울러 보실 수 있습니다.</p>
+plugin_scmsvn	realname	이름
+plugin_scmsvn	adds	Adds
+plugin_scmsvn	commits	Updates
+plugin_scmsvn	unknown	Unknown
+plugin_scmsvn	total	ì „ì²´
+plugin_scmsvn	svn_updates	<strong>$1</strong> updates, <strong>$2</strong> adds

Added: trunk/gforge_base/evolvisforge/plugins.test/scmsvn/common/scmsvn-init.php
===================================================================
--- trunk/gforge_base/evolvisforge/plugins.test/scmsvn/common/scmsvn-init.php	                        (rev 0)
+++ trunk/gforge_base/evolvisforge/plugins.test/scmsvn/common/scmsvn-init.php	2010-02-26 00:19:01 UTC (rev 4850)
@@ -0,0 +1,37 @@
+<?php
+/** Subversion plugin for Gforge
+ * Copyright 2003 Roland Mas <lolando at debian.org>
+ * Copyright 2004 Roland Mas <roland at gnurandal.com> 
+ *                The Gforge Group, LLC <http://gforgegroup.com/>
+ * Based on the CVS plugin, which was derived from Gforge, which was
+ * derived from Sourceforge
+ *
+ * This file is not part of Gforge
+ *
+ * This plugin, like Gforge, 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.
+ *
+ * GForge is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with GForge; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  US
+ */
+
+require_once ($GLOBALS['sys_plugins_path'].'/scmsvn/common/SVNPlugin.class') ;
+
+$SVNPluginObject = new SVNPlugin ;
+
+register_plugin ($SVNPluginObject) ;
+
+// Local Variables:
+// mode: php
+// c-file-style: "bsd"
+// End:
+
+?>

Added: trunk/gforge_base/evolvisforge/plugins.test/scmsvn/cronjobs/README
===================================================================
--- trunk/gforge_base/evolvisforge/plugins.test/scmsvn/cronjobs/README	                        (rev 0)
+++ trunk/gforge_base/evolvisforge/plugins.test/scmsvn/cronjobs/README	2010-02-26 00:19:01 UTC (rev 4850)
@@ -0,0 +1,43 @@
+These new scripts and files allow you to do away completely with
+CVS and the editing of the /etc/passwd /etc/groups and /etc/shadow files
+(or LDAP auth server).
+
+Instead we can use the new module libapache2-mod-auth-gforge in conjunction
+with Subversion, DAV, mod_dav, mod_dav_svn, and mod_authz_svn.
+
+Sounds complex, doesn't it? There's a lot of stuff to install, but the 
+scripts are quite clear and flexible.
+
+A sample crontab is at crontab.in and sample httpd.conf is here as well.
+
+Here's what you get:
+
+User DAV-accesible space:
+   Home directories, public and shareable for each user:
+   /var/www/homedirs/users/*user_name*/
+
+   Home pages for Users (http://*user_name*.users.gforge.company.com)
+   /var/www/homedirs/users/*user_name*/www
+
+   Private DAV directories for each user
+   /var/www/homedirs/users/*user_name*/private
+
+Group DAV space:
+   Home directories, public and shareable for each group:
+   /var/www/homedirs/groups/*group_name*
+
+   Home pages for Groups (http://*group_name*.groups.gforge.company.com)
+   /var/www/homedirs/groups/*group_name*
+
+Group DAV/Subversion Document Repository
+   Each project has its own subversion repository for document storage
+   /var/docman/*group_name*/ is where the repositories are
+   /var/www/docman is the DOCUMENT_ROOT for apache
+   Access them at (http://doc.gforge.company.com/*group_name*)
+
+Group DAV/Subversion Source Code Repository
+   Each project has its own subversion repository for source code
+   /var/svn/*group_name*/ is where the repositories are
+   /var/www/docman is the DOCUMENT_ROOT for apache
+   Access them at (http://svn.gforge.company.com/*group_name*)
+

Added: trunk/gforge_base/evolvisforge/plugins.test/scmsvn/cronjobs/commit-email_pl
===================================================================
--- trunk/gforge_base/evolvisforge/plugins.test/scmsvn/cronjobs/commit-email_pl	                        (rev 0)
+++ trunk/gforge_base/evolvisforge/plugins.test/scmsvn/cronjobs/commit-email_pl	2010-02-26 00:19:01 UTC (rev 4850)
@@ -0,0 +1,592 @@
+#!/usr/bin/env perl
+
+# ====================================================================
+# commit-email.pl: send a commit email for commit REVISION in
+# repository REPOS to some email addresses.
+#
+# For usage, see the usage subroutine or run the script with no
+# command line arguments.
+#
+# $HeadURL: http://svn.collab.net/repos/svn/branches/1.1.x/tools/hook-scripts/commit-email.pl.in $
+# $LastChangedDate$
+# $LastChangedBy$
+# $LastChangedRevision$
+#    
+# ====================================================================
+# Copyright (c) 2000-2004 CollabNet.  All rights reserved.
+#
+# This software is licensed as described in the file COPYING, which
+# you should have received as part of this distribution.  The terms
+# are also available at http://subversion.tigris.org/license-1.html.
+# If newer versions of this license are posted there, you may use a
+# newer version instead, at your option.
+#
+# This software consists of voluntary contributions made by many
+# individuals.  For exact contribution history, see the revision
+# history and logs, available at http://subversion.tigris.org/.
+# ====================================================================
+
+# Turn on warnings the best way depending on the Perl version.
+BEGIN {                                                                         
+  if ( $] >= 5.006_000)                                                         
+    { require warnings; import warnings; }                
+  else                                                                          
+    { $^W = 1; }                                                  
+}                                                                               
+						
+use strict;
+use Carp;
+
+######################################################################
+# Configuration section.
+
+# Sendmail path.
+my $sendmail = "/usr/sbin/sendmail";
+
+# Svnlook path.
+my $svnlook = "/usr/bin/svnlook";
+
+# By default, when a file is deleted from the repository, svnlook diff
+# prints the entire contents of the file.  If you want to save space
+# in the log and email messages by not printing the file, then set
+# $no_diff_deleted to 1.
+my $no_diff_deleted = 0;
+
+# Since the path to svnlook depends upon the local installation
+# preferences, check that the required programs exist to insure that
+# the administrator has set up the script properly.
+{
+  my $ok = 1;
+  foreach my $program ($sendmail, $svnlook)
+    {
+      if (-e $program)
+        {
+          unless (-x $program)
+            {
+              warn "$0: required program `$program' is not executable, ",
+                   "edit $0.\n";
+              $ok = 0;
+            }
+        }
+      else
+        {
+          warn "$0: required program `$program' does not exist, edit $0.\n";
+          $ok = 0;
+        }
+    }
+  exit 1 unless $ok;
+}
+
+
+######################################################################
+# Initial setup/command-line handling.
+
+# Each value in this array holds a hash reference which contains the
+# associated email information for one project.  Start with an
+# implicit rule that matches all paths.
+my @project_settings_list = (&new_project);
+
+# Process the command line arguments till there are none left.  The
+# first two arguments that are not used by a command line option are
+# the repository path and the revision number.
+my $repos;
+my $rev;
+
+# Use the reference to the first project to populate.
+my $current_project = $project_settings_list[0];
+
+# This hash matches the command line option to the hash key in the
+# project.  If a key exists but has a false value (''), then the
+# command line option is allowed but requires special handling.
+my %opt_to_hash_key = ('--from' => 'from_address',
+                       '-h'     => 'hostname',
+                       '-l'     => 'log_file',
+                       '-m'     => '',
+                       '-r'     => 'reply_to',
+                       '-s'     => 'subject_prefix');
+
+while (@ARGV)
+  {
+    my $arg = shift @ARGV;
+    if ($arg =~ /^-/)
+      {
+        my $hash_key = $opt_to_hash_key{$arg};
+        unless (defined $hash_key)
+          {
+            die "$0: command line option `$arg' is not recognized.\n";
+          }
+
+        unless (@ARGV)
+          {
+            die "$0: command line option `$arg' is missing a value.\n";
+          }
+        my $value = shift @ARGV;
+
+        if ($hash_key)
+          {
+            $current_project->{$hash_key} = $value;
+          }
+        else
+          {
+            # Here handle -m.
+            unless ($arg eq '-m')
+              {
+                die "$0: internal error: should only handle -m here.\n";
+              }
+            $current_project                = &new_project;
+            $current_project->{match_regex} = $value;
+            push(@project_settings_list, $current_project);
+          }
+      }
+    elsif ($arg =~ /^-/)
+      {
+        die "$0: command line option `$arg' is not recognized.\n";
+      }
+    else
+      {
+        if (! defined $repos)
+          {
+            $repos = $arg;
+          }
+        elsif (! defined $rev)
+          {
+            $rev = $arg;
+          }
+        else
+          {
+            push(@{$current_project->{email_addresses}}, $arg);
+          }
+      }
+  }
+
+# If the revision number is undefined, then there were not enough
+# command line arguments.
+&usage("$0: too few arguments.") unless defined $rev;
+
+# Check the validity of the command line arguments.  Check that the
+# revision is an integer greater than 0 and that the repository
+# directory exists.
+unless ($rev =~ /^\d+/ and $rev > 0)
+  {
+    &usage("$0: revision number `$rev' must be an integer > 0.");
+  }
+unless (-e $repos)
+  {
+    &usage("$0: repos directory `$repos' does not exist.");
+  }
+unless (-d _)
+  {
+    &usage("$0: repos directory `$repos' is not a directory.");
+  }
+
+# Check that all of the regular expressions can be compiled and
+# compile them.
+{
+  my $ok = 1;
+  for (my $i=0; $i<@project_settings_list; ++$i)
+    {
+      my $match_regex = $project_settings_list[$i]->{match_regex};
+
+      # To help users that automatically write regular expressions
+      # that match the root directory using ^/, remove the / character
+      # because subversion paths, while they start at the root level,
+      # do not begin with a /.
+      $match_regex =~ s#^\^/#^#;
+
+      my $match_re;
+      eval { $match_re = qr/$match_regex/ };
+      if ($@)
+        {
+          warn "$0: -m regex #$i `$match_regex' does not compile:\n$@\n";
+          $ok = 0;
+          next;
+        }
+      $project_settings_list[$i]->{match_re} = $match_re;
+    }
+  exit 1 unless $ok;
+}
+
+######################################################################
+# Harvest data using svnlook.
+
+# Change into /tmp so that svnlook diff can create its .svnlook
+# directory.
+my $tmp_dir = '/tmp';
+chdir($tmp_dir)
+  or die "$0: cannot chdir `$tmp_dir': $!\n";
+
+# Get the author, date, and log from svnlook.
+my @svnlooklines = &read_from_process($svnlook, 'info', $repos, '-r', $rev);
+my $author = shift @svnlooklines;
+my $date = shift @svnlooklines;
+shift @svnlooklines;
+my @log = map { "$_\n" } @svnlooklines;
+
+# Figure out what directories have changed using svnlook.
+my @dirschanged = &read_from_process($svnlook, 'dirs-changed', $repos, 
+                                     '-r', $rev);
+
+# Lose the trailing slash in the directory names if one exists, except
+# in the case of '/'.
+my $rootchanged = 0;
+for (my $i=0; $i<@dirschanged; ++$i)
+  {
+    if ($dirschanged[$i] eq '/')
+      {
+        $rootchanged = 1;
+      }
+    else
+      {
+        $dirschanged[$i] =~ s#^(.+)[/\\]$#$1#;
+      }
+  }
+
+# Figure out what files have changed using svnlook.
+ at svnlooklines = &read_from_process($svnlook, 'changed', $repos, '-r', $rev);
+
+# Parse the changed nodes.
+my @adds;
+my @dels;
+my @mods;
+foreach my $line (@svnlooklines)
+  {
+    my $path = '';
+    my $code = '';
+
+    # Split the line up into the modification code and path, ignoring
+    # property modifications.
+    if ($line =~ /^(.).  (.*)$/)
+      {
+        $code = $1;
+        $path = $2;
+      }
+
+    if ($code eq 'A')
+      {
+        push(@adds, $path);
+      }
+    elsif ($code eq 'D')
+      {
+        push(@dels, $path);
+      }
+    else
+      {
+        push(@mods, $path);
+      }
+  }
+
+# Get the diff from svnlook.
+my @no_diff_deleted = $no_diff_deleted ? ('--no-diff-deleted') : ();
+my @difflines = &read_from_process($svnlook, 'diff', $repos,
+                                   '-r', $rev, @no_diff_deleted);
+
+######################################################################
+# Modified directory name collapsing.
+
+# Collapse the list of changed directories only if the root directory
+# was not modified, because otherwise everything is under root and
+# there's no point in collapsing the directories, and only if more
+# than one directory was modified.
+my $commondir = '';
+if (!$rootchanged and @dirschanged > 1)
+  {
+    my $firstline    = shift @dirschanged;
+    my @commonpieces = split('/', $firstline);
+    foreach my $line (@dirschanged)
+      {
+        my @pieces = split('/', $line);
+        my $i = 0;
+        while ($i < @pieces and $i < @commonpieces)
+          {
+            if ($pieces[$i] ne $commonpieces[$i])
+              {
+                splice(@commonpieces, $i, @commonpieces - $i);
+                last;
+              }
+            $i++;
+          }
+      }
+    unshift(@dirschanged, $firstline);
+
+    if (@commonpieces)
+      {
+        $commondir = join('/', @commonpieces);
+        my @new_dirschanged;
+        foreach my $dir (@dirschanged)
+          {
+            if ($dir eq $commondir)
+              {
+                $dir = '.';
+              }
+            else
+              {
+                $dir =~ s#^$commondir/##;
+              }
+            push(@new_dirschanged, $dir);
+          }
+        @dirschanged = @new_dirschanged;
+      }
+  }
+my $dirlist = join(' ', @dirschanged);
+
+######################################################################
+# Assembly of log message.
+
+# Put together the body of the log message.
+my @body;
+push(@body, "Author: $author\n");
+push(@body, "Date: $date\n");
+push(@body, "New Revision: $rev\n");
+push(@body, "\n");
+if (@adds)
+  {
+    @adds = sort @adds;
+    push(@body, "Added:\n");
+    push(@body, map { "   $_\n" } @adds);
+  }
+if (@dels)
+  {
+    @dels = sort @dels;
+    push(@body, "Removed:\n");
+    push(@body, map { "   $_\n" } @dels);
+  }
+if (@mods)
+  {
+    @mods = sort @mods;
+    push(@body, "Modified:\n");
+    push(@body, map { "   $_\n" } @mods);
+  }
+push(@body, "Log:\n");
+push(@body, @log);
+push(@body, "\n");
+push(@body, map { /[\r\n]+$/ ? $_ : "$_\n" } @difflines);
+
+# Go through each project and see if there are any matches for this
+# project.  If so, send the log out.
+foreach my $project (@project_settings_list)
+  {
+    my $match_re = $project->{match_re};
+    my $match    = 0;
+    foreach my $path (@dirschanged, @adds, @dels, @mods)
+      {
+        if ($path =~ $match_re)
+          {
+            $match = 1;
+            last;
+          }
+      }
+
+    next unless $match;
+
+    my @email_addresses = @{$project->{email_addresses}};
+    my $userlist        = join(' ', @email_addresses);
+    my $to              = join(', ', @email_addresses);
+    my $from_address    = $project->{from_address};
+    my $hostname        = $project->{hostname};
+    my $log_file        = $project->{log_file};
+    my $reply_to        = $project->{reply_to};
+    my $subject_prefix  = $project->{subject_prefix};
+    my $subject;
+
+    if ($commondir ne '')
+      {
+        $subject = "r$rev - in $commondir: $dirlist";
+      }
+    else
+      {
+        $subject = "r$rev - $dirlist";
+      }
+    if ($subject_prefix =~ /\w/)
+      {
+        $subject = "$subject_prefix $subject";
+      }
+    my $mail_from = $author;
+
+    if ($from_address =~ /\w/)
+      {
+        $mail_from = $from_address;
+      }
+    elsif ($hostname =~ /\w/)
+      {
+        $mail_from = "$mail_from\@$hostname";
+      }
+
+    my @head;
+    push(@head, "To: $to\n");
+    push(@head, "From: $mail_from\n");
+    push(@head, "Subject: $subject\n");
+    push(@head, "Reply-to: $reply_to\n") if $reply_to;
+
+    ### Below, we set the content-type etc, but see these comments
+    ### from Greg Stein on why this is not a full solution.
+    #
+    # From: Greg Stein <gstein at lyra.org>
+    # Subject: Re: svn commit: rev 2599 - trunk/tools/cgi
+    # To: dev at subversion.tigris.org
+    # Date: Fri, 19 Jul 2002 23:42:32 -0700
+    # 
+    # Well... that isn't strictly true. The contents of the files
+    # might not be UTF-8, so the "diff" portion will be hosed.
+    # 
+    # If you want a truly "proper" commit message, then you'd use
+    # multipart MIME messages, with each file going into its own part,
+    # and labeled with an appropriate MIME type and charset. Of
+    # course, we haven't defined a charset property yet, but no biggy.
+    # 
+    # Going with multipart will surely throw out the notion of "cut
+    # out the patch from the email and apply." But then again: the
+    # commit emailer could see that all portions are in the same
+    # charset and skip the multipart thang. 
+    # 
+    # etc etc
+    # 
+    # Basically: adding/tweaking the content-type is nice, but don't
+    # think that is the proper solution.
+    push(@head, "Content-Type: text/plain; charset=UTF-8\n");
+    push(@head, "Content-Transfer-Encoding: 8bit\n");
+
+    push(@head, "\n");
+
+    if ($sendmail =~ /\w/ and @email_addresses)
+      {
+        # Open a pipe to sendmail.
+        my $command = "$sendmail $userlist";
+        if (open(SENDMAIL, "| $command"))
+          {
+            print SENDMAIL @head, @body;
+            close SENDMAIL
+              or warn "$0: error in closing `$command' for writing: $!\n";
+          }
+        else
+          {
+            warn "$0: cannot open `| $command' for writing: $!\n";
+          }
+      }
+
+    # Dump the output to logfile (if its name is not empty).
+    if ($log_file =~ /\w/)
+      {
+        if (open(LOGFILE, ">> $log_file"))
+          {
+            print LOGFILE @head, @body;
+            close LOGFILE
+              or warn "$0: error in closing `$log_file' for appending: $!\n";
+          }
+        else
+          {
+            warn "$0: cannot open `$log_file' for appending: $!\n";
+          }
+      }
+  }
+
+exit 0;
+
+sub usage
+{
+  warn "@_\n" if @_;
+  die "usage: $0 REPOS REVNUM [[-m regex] [options] [email_addr ...]] ...\n",
+      "options are\n",
+      "  --from email_address  Email address for 'From:' (overrides -h)\n",
+      "  -h hostname           Hostname to append to author for 'From:'\n",
+      "  -l logfile            Append mail contents to this log file\n",
+      "  -m regex              Regular expression to match committed path\n",
+      "  -r email_address      Email address for 'Reply-To:'\n",
+      "  -s subject_prefix     Subject line prefix\n",
+      "\n",
+      "This script supports a single repository with multiple projects,\n",
+      "where each project receives email only for commits that modify that\n",
+      "project.  A project is identified by using the -m command line\n",
+      "with a regular expression argument.  If a commit has a path that\n",
+      "matches the regular expression, then the entire commit matches.\n",
+      "Any of the following -h, -l, -r and -s command line options and\n",
+      "following email addresses are associated with this project.  The\n",
+      "next -m resets the -h, -l, -r and -s command line options and the\n",
+      "list of email addresses.\n",
+      "\n",
+      "To support a single project conveniently, the script initializes\n",
+      "itself with an implicit -m . rule that matches any modifications\n",
+      "to the repository.  Therefore, to use the script for a single\n",
+      "project repository, just use the other comand line options and\n",
+      "a list of email addresses on the command line.  If you do not want\n",
+      "a project that matches the entire repository, then use a -m with a\n",
+      "regular expression before any other command line options or email\n",
+      "addresses.\n";
+}
+
+# Return a new hash data structure for a new empty project that
+# matches any modifications to the repository.
+sub new_project
+{
+  return {email_addresses => [],
+          from_address    => '',
+          hostname        => '',
+          log_file        => '',
+          match_regex     => '.',
+          reply_to        => '',
+          subject_prefix  => ''};
+}
+
+# Start a child process safely without using /bin/sh.
+sub safe_read_from_pipe
+{
+  unless (@_)
+    {
+      croak "$0: safe_read_from_pipe passed no arguments.\n";
+    }
+
+  my $pid = open(SAFE_READ, '-|');
+  unless (defined $pid)
+    {
+      die "$0: cannot fork: $!\n";
+    }
+  unless ($pid)
+    {
+      open(STDERR, ">&STDOUT")
+        or die "$0: cannot dup STDOUT: $!\n";
+      exec(@_)
+        or die "$0: cannot exec `@_': $!\n";
+    }
+  my @output;
+  while (<SAFE_READ>)
+    {
+      s/[\r\n]+$//;
+      push(@output, $_);
+    }
+  close(SAFE_READ);
+  my $result = $?;
+  my $exit   = $result >> 8;
+  my $signal = $result & 127;
+  my $cd     = $result & 128 ? "with core dump" : "";
+  if ($signal or $cd)
+    {
+      warn "$0: pipe from `@_' failed $cd: exit=$exit signal=$signal\n";
+    }
+  if (wantarray)
+    {
+      return ($result, @output);
+    }
+  else
+    {
+      return $result;
+    }
+}
+
+# Use safe_read_from_pipe to start a child process safely and return
+# the output if it succeeded or an error message followed by the output
+# if it failed.
+sub read_from_process
+{
+  unless (@_)
+    {
+      croak "$0: read_from_process passed no arguments.\n";
+    }
+  my ($status, @output) = &safe_read_from_pipe(@_);
+  if ($status)
+    {
+      return ("$0: `@_' failed with this output:", @output);
+    }
+  else
+    {
+      return @output;
+    }
+}

Added: trunk/gforge_base/evolvisforge/plugins.test/scmsvn/cronjobs/create_docman.php
===================================================================
--- trunk/gforge_base/evolvisforge/plugins.test/scmsvn/cronjobs/create_docman.php	                        (rev 0)
+++ trunk/gforge_base/evolvisforge/plugins.test/scmsvn/cronjobs/create_docman.php	2010-02-26 00:19:01 UTC (rev 4850)
@@ -0,0 +1,56 @@
+#! /usr/bin/php4 -f
+<?php
+/**
+ * create_docman.php 
+ *
+ * Francisco Gimeno <kikov at fco-gimeno.com>
+ *
+ * @version   $Id
+ */
+
+require ('squal_pre.php');
+
+//	/path/to/svn/bin/
+$svn_path='/usr/local/svn/bin';
+
+//	Owner of files - apache
+$file_owner='nobody:nogroup';
+
+//	Where is the docman SVN repository?
+$docman='/var/docman';
+
+//	Whether to separate directories by first letter like /m/mygroup /a/apple
+$first_letter = false;
+
+/*
+	This script create the gforge dav/svn/docman repositories
+*/
+
+echo "Creating Groups at ". $docman."\n";
+
+$res = db_query("SELECT is_public,enable_anoncvs,unix_group_name 
+	FROM groups WHERE status != 'P';");
+
+if (!$res) {
+	echo "Error!\n";
+}
+
+system("[ ! -d ".$docman." ] && mkdir $docman"); 
+
+while ( $row =& db_fetch_array($res) ) {
+	echo "Name:".$row["unix_group_name"]." \n";
+	if ($first_letter) {
+		//
+		//	Create the docman repository for versioning of docs
+		//
+		system ("[ ! -d $docman/".$row["unix_group_name"][0]."/".$row["unix_group_name"]." ] && mkdir -p $docman/".$row["unix_group_name"][0]."/ && $svn_path/svnadmin create $docman/".$row["unix_group_name"][0]."/".$row["unix_group_name"]);
+	} else {
+		system ("[ ! -d $docman/".$row["unix_group_name"]." ] &&  $svn_path/svnadmin create $docman/".$row["unix_group_name"]);
+	}
+}
+
+system("chown $file_owner -R $docman");
+system("cd $docman/ ; find -type d -exec chmod 700 {} \;");
+system("cd $docman/ ; find -type f -exec chmod 600 {} \;");
+
+?>


Property changes on: trunk/gforge_base/evolvisforge/plugins.test/scmsvn/cronjobs/create_docman.php
___________________________________________________________________
Added: svn:executable
   + *

Added: trunk/gforge_base/evolvisforge/plugins.test/scmsvn/cronjobs/create_group_home.php
===================================================================
--- trunk/gforge_base/evolvisforge/plugins.test/scmsvn/cronjobs/create_group_home.php	                        (rev 0)
+++ trunk/gforge_base/evolvisforge/plugins.test/scmsvn/cronjobs/create_group_home.php	2010-02-26 00:19:01 UTC (rev 4850)
@@ -0,0 +1,60 @@
+#! /usr/bin/php4 -f
+<?php
+/**
+ * create_group_home.php 
+ *
+ * Francisco Gimeno <kikov at fco-gimeno.com>
+ *
+ * @version   $Id
+ */
+
+require ('squal_pre.php');
+
+//
+//	Owner of files - apache
+//
+$file_owner='nobody:nogroup';
+
+$first_letter = false;
+
+/*
+
+	This script create the gforge/upload directory for users
+
+*/
+
+if ($argc < 2 ) {
+	echo "Usage ".$argv[0]." <path> <-f>\n";
+	echo "-f  First Letter activated... do groups/m/myprojec\n";
+	exit (0);
+}
+if ( $argv[2]=='-f' ) {
+   $first_letter = true;
+}
+
+$upload_path = $argv[1];
+echo "Creating Groups at ". $upload_path."\n";
+
+$res = db_query("SELECT unix_group_name FROM groups WHERE status != 'P';");
+if (!$res) {
+	echo "Error!\n";
+}
+
+system("[ ! -d ".$upload_path."/groups ] && mkdir $upload_path/groups"); 
+
+while ( $row = db_fetch_array($res) ) {
+	echo "Name:".$row["unix_group_name"]." \n";
+	if ($first_letter) {
+		system ("[ ! -d $upload_path/groups/".$row["unix_group_name"][0]."/".$row["unix_group_name"]." ] && mkdir -p $upload_path/groups/".$row["unix_group_name"][0]."/".$row["unix_group_name"]);
+		system ("cp default_page.php $upload_path/groups/".$row["unix_group_name"][0]."/".$row["unix_group_name"]."/index.php");
+	} else {
+		system ("[ ! -d $upload_path/groups/".$row["unix_group_name"]." ] && mkdir $upload_path/groups/".$row["unix_group_name"]);
+		system ("cp default_page.php $upload_path/groups/".$row["unix_group_name"]."/index.php");
+	}
+}
+
+system("chown $file_owner -R $upload_path/groups");
+system("cd $upload_path/groups ; find -type d -exec chmod 700 {} \;");
+system("cd $upload_path/groups ; find -type f -exec chmod 600 {} \;");
+
+?>


Property changes on: trunk/gforge_base/evolvisforge/plugins.test/scmsvn/cronjobs/create_group_home.php
___________________________________________________________________
Added: svn:executable
   + *

Added: trunk/gforge_base/evolvisforge/plugins.test/scmsvn/cronjobs/create_groups.php
===================================================================
--- trunk/gforge_base/evolvisforge/plugins.test/scmsvn/cronjobs/create_groups.php	                        (rev 0)
+++ trunk/gforge_base/evolvisforge/plugins.test/scmsvn/cronjobs/create_groups.php	2010-02-26 00:19:01 UTC (rev 4850)
@@ -0,0 +1,58 @@
+#! /usr/bin/php4 -f
+<?php
+/**
+ * create_groups.php 
+ *
+ * Francisco Gimeno <kikov at fco-gimeno.com>
+ *
+ * @version   $Id
+ */
+
+require ('squal_pre.php');
+
+//
+//	Owner of files - apache
+//
+$file_owner='nobody:nogroup';
+
+$first_letter = false;
+
+/*
+
+	This script create the gforge/upload directory for users
+
+*/
+
+if ($argc < 2 ) {
+	echo "Usage ".$argv[0]." <path> <-f>\n";
+	echo "-f  First Letter activated... do groups/m/myprojec\n";
+	exit (0);
+}
+if ( $argv[2]=='-f' ) {
+   $first_letter = true;
+}
+
+$upload_path = $argv[1];
+echo "Creating Groups at ". $upload_path."\n";
+
+$res = db_query("SELECT unix_group_name FROM groups WHERE status != 'P';");
+if (!$res) {
+	echo "Error!\n";
+}
+
+system("[ ! -d ".$upload_path."/groups ] && mkdir $upload_path/groups"); 
+
+while ( $row = db_fetch_array($res) ) {
+	echo "Name:".$row["unix_group_name"]." \n";
+	if ($first_letter) {
+		system ("[ ! -d $upload_path/groups/".$row["unix_group_name"][0]."/".$row["unix_group_name"]." ] && mkdir -p $upload_path/groups/".$row["unix_group_name"][0]."/".$row["unix_group_name"]);
+	} else {
+		system ("[ ! -d $upload_path/groups/".$row["unix_group_name"]." ] && mkdir $upload_path/groups/".$row["unix_group_name"]);
+	}
+}
+
+system("chown $file_owner -R $upload_path/groups");
+system("cd $upload_path/groups ; find -type d -exec chmod 700 {} \;");
+system("cd $upload_path/groups ; find -type f -exec chmod 600 {} \;");
+
+?>


Property changes on: trunk/gforge_base/evolvisforge/plugins.test/scmsvn/cronjobs/create_groups.php
___________________________________________________________________
Added: svn:executable
   + *

Added: trunk/gforge_base/evolvisforge/plugins.test/scmsvn/cronjobs/create_svn.php
===================================================================
--- trunk/gforge_base/evolvisforge/plugins.test/scmsvn/cronjobs/create_svn.php	                        (rev 0)
+++ trunk/gforge_base/evolvisforge/plugins.test/scmsvn/cronjobs/create_svn.php	2010-02-26 00:19:01 UTC (rev 4850)
@@ -0,0 +1,270 @@
+#! /usr/bin/php4 -f
+<?php
+/**
+ * create_docman.php 
+ *
+ * Francisco Gimeno <kikov at fco-gimeno.com>
+ *
+ * @version   $Id
+ */
+
+require ('squal_pre.php');
+require_once('common/include/cron_utils.php');
+
+//	/path/to/svn/bin/
+$svn_path='/usr/bin';
+
+if (is_file($svn_path.'svnadmin')) {
+
+} elseif (is_file('/usr/bin/svnadmin')) {
+	$svn_path='/usr/bin';
+} else {
+	echo "\nsvn path is not set right in this script!!";
+}
+
+
+//	Owner of files - apache
+$file_owner=$sys_apache_user.':'.$sys_apache_group;
+
+//	Where is the SVN repository?
+$svn=$svndir_prefix;
+
+//	Whether to separate directories by first letter like /m/mygroup /a/apple
+$first_letter = false;
+
+// Whether to have all projects in a single repository
+$one_repository = false;
+
+//if everything is in one repository, we need a working checkout to use
+$repos_co = '/var/svn-co';
+
+//type of repository, whether filepassthru or bdb
+//$repos_type = ' --fs-type fsfs ';
+$repos_type = '';
+
+//the name of the access_file
+$access_file = "/opt/gforge/svn_access.conf";
+$password_file = "/opt/gforge/svn_password.conf";
+
+/*
+	This script create the gforge dav/svn/docman repositories
+*/
+
+
+
+$err .= "Creating Groups at ". $svn."\n";
+
+if (empty($sys_apache_user) || empty($sys_apache_group)) {
+	$err .=  "Error! sys_apache_user Is Not Set Or sys_apache_group Is Not Set!";
+	echo $err;
+	cron_entry(21,$err);
+	exit;
+}
+
+if (empty($svn) || util_is_root_dir($svn)) {
+	$err .=  "Error! svndir_prefix Is Not Set Or Points To The Root Directory!";
+	echo $err;
+	cron_entry(21,$err);
+	exit;
+}
+
+$res = db_query("SELECT is_public,enable_anonscm,unix_group_name,groups.group_id 
+	FROM groups, plugins, group_plugin 
+	WHERE groups.status != 'P' 
+	AND groups.group_id=group_plugin.group_id
+	AND group_plugin.plugin_id=plugins.plugin_id
+	AND plugins.plugin_name='scmsvn'");
+
+if (!$res) {
+	$err .=  "Error! Database Query Failed: ".db_error();
+	echo $err;
+	cron_entry(21,$err);
+	exit;
+}
+
+//
+//	If using a single large repository, create the checkout if necessary
+//
+
+
+if ($one_repository && !is_dir($repos_co)) {
+	$err .= "Error! Checkout Repository Does Not Exist!";
+	echo $err;
+	cron_entry(21,$err);
+	exit;
+} elseif (!is_dir($svn)) {
+	passthru ("mkdir $svn");
+}
+
+// The content of the access file used by svn authz apache2 module
+$access_file_content = "";
+
+while ( $row =& db_fetch_array($res) ) {	
+	if ($one_repository) {
+		if ($first_letter) {
+			//
+			//	Create the repository
+			//
+			passthru ("[ ! -d $repos_co/".$row["unix_group_name"][0]."/ ] && mkdir -p $repos_co/".$row["unix_group_name"][0]."/ && $svn_path/svn add $repos_co/".$row["unix_group_name"][0]."/");
+			passthru ("[ ! -d $repos_co/".$row["unix_group_name"][0]."/".$row["unix_group_name"]."/ ] && mkdir -p $repos_co/".$row["unix_group_name"][0]."/".$row["unix_group_name"]."/ && $svn_path/svn add $repos_co/".$row["unix_group_name"][0]."/".$row["unix_group_name"]."/");
+		} else {
+			passthru ("[ ! -d $repos_co/".$row["unix_group_name"]." ] && mkdir -p $repos_co/".$row["unix_group_name"]."/ && $svn_path/svn add $repos_co/".$row["unix_group_name"]);
+		}
+		$cmd = 'chown -R '.$file_owner.' '.$repos_co;
+		passthru ($cmd);
+	} else {
+		$project = &group_get_object($row["group_id"]); // get the group object for the current group
+		if ( (!$project) || (!is_object($project))  )  {
+			echo "Error Getting Group." . " Id : " . $row["group_id"] . " , Name : " . $row["unix_group_name"];
+			break; // continue to the next project
+		}		
+		if ($first_letter) {
+			//
+			//	Create the repository
+			//
+			passthru ("[ ! -d $svn/".$row["unix_group_name"][0]."/".$row["unix_group_name"]." ] && mkdir -p $svn/".$row["unix_group_name"][0]."/ && $svn_path/svnadmin create $repos_type $svn/".$row["unix_group_name"][0]."/".$row["unix_group_name"]);
+ 			if ($project->usesPlugin('svncommitemail')) {
+ 				check_svn_mail($row["unix_group_name"], $svn."/".$row["unix_group_name"][0]."/".$row["unix_group_name"]);
+ 			}
+ 			if ($project->usesPlugin('svntracker')) {
+ 				check_svn_tracker($row["unix_group_name"], $svn."/".$row["unix_group_name"][0]."/".$row["unix_group_name"]);
+ 			}
+		} else {
+			passthru ("[ ! -d $svn/".$row["unix_group_name"]." ] &&  $svn_path/svnadmin create $repos_type $svn/".$row["unix_group_name"]);
+			$cmd = 'chown -R '.$file_owner.' '.$svn.'/'.$row["unix_group_name"];
+			passthru($cmd); // svn dir owned by apache or viewcvs doesn´t work 
+			if ($project->usesPlugin('svncommitemail')) {
+ 				check_svn_mail($row["unix_group_name"], $svn."/".$row["unix_group_name"]);
+			}
+			if ($project->usesPlugin('svntracker')) {
+				check_svn_tracker($row["unix_group_name"], $svn."/".$row["unix_group_name"]);
+			}
+		}
+		$access_file_content .= add2AccessFile($row["group_id"]);
+		$cmd = 'chown -R '.$file_owner.' '.$svn;
+		passthru ($cmd);
+	}
+}
+
+writeAccessFile($access_file, $access_file_content);
+writePasswordFile($password_file );
+
+function add2AccessFile($group_id) {
+	$result = "";
+	$project = &group_get_object($group_id);
+	$result = "[". $project->getUnixName(). ":/]\n";
+	$users= &$project->getMembers();
+	foreach($users as $user ) {
+		$perm = &$project->getPermission($user);
+		if ( $perm->isCVSWriter() ) {
+			$result.= $user->getUnixName() . "= rw\n";
+		} else if ( $perm->isCVSReader() ) {
+			$result.= $user->getUnixName() . "= r\n";
+		}
+	}
+	if ( $project->enableAnonSCM() ) {
+		$result.="anonsvn= r\n";
+		$result.="* = r\n";
+
+	}
+	$result.="\n";
+	return $result;
+}
+
+function writeAccessFile($fileName, $access_file_content) {
+	$myFile= fopen( $fileName, "w" );
+	fwrite ( $myFile, $access_file_content );
+	fclose($myFile);
+}
+
+function writePasswordFile($fileName ) {
+	$res = db_query("SELECT * FROM users WHERE user_id IN (SELECT DISTINCT user_id FROM user_group ug, group_plugin gp, plugins p
+		WHERE ug.group_id=gp.group_id AND gp.plugin_id=p.plugin_id AND p.plugin_name='scmsvn')");
+	$output = "";
+	if (!$res) {
+		$err .=  "Error! Database Query Failed: ".db_error();
+		echo $err;
+		cron_entry(21,$err);
+		exit;
+	}
+
+	while ( $row =& db_fetch_array($res) ) {
+		if (!empty($row["unix_pw"]))
+			$output .= $row["user_name"].":".$row["unix_pw"]."\n";
+	}
+	$myFile = fopen( $fileName, "w" );
+	fwrite ( $myFile, $output );
+	fwrite ( $myFile, 'anonsvn:$apr1$Kfr69/..$J08mbyNpD81y42x7xlFDm.'."\n");
+	fclose($myFile);
+}
+
+function check_svn_tracker($project, $repos) {
+	
+	$contents = @file_get_contents($repos."/hooks/post-commit");	
+	if ( strstr($contents, "svntracker") == FALSE ) {
+		add_svn_tracker_to_repository($project,$repos);
+	}
+}
+
+function add_svn_tracker_to_repository($project,$repos) {
+	global $sys_plugins_path,$file_owner;
+	
+	if (file_exists($repos.'/hooks/post-commit')) {
+		$FOut = fopen($repos.'/hooks/post-commit', "a+");
+	} else {
+		$FOut = fopen($repos.'/hooks/post-commit', "w");
+		$Line = '#!/bin/sh'."\n"; // add this line to first line or else the script fails
+	}
+	if($FOut) {
+		$Line .= '
+#begin added by svntracker'.
+"\n/usr/bin/php -d include_path=".ini_get('include_path').
+				" ".$sys_plugins_path. "/svntracker/bin/post.php".  ' "'.$repos.'" "$2"
+#end added by svntracker';
+		fwrite($FOut,$Line);
+		`chmod +x $repos'/hooks/post-commit'`;
+		`chmod 700 $repos'/hooks/post-commit'`;
+		`chown $file_owner $repos'/hooks/post-commit'`;
+		fclose($FOut);
+	}
+}
+
+function check_svn_mail($project, $repos) {
+	$contents = @file_get_contents($repos."/hooks/post-commit");
+	if ( strstr($contents, "svncommitemail") == FALSE ) {
+		add_svn_mail_to_repository($project,$repos);
+	}
+}
+
+function add_svn_mail_to_repository($unix_group_name,$repos) {
+	global $sys_lists_host,$file_owner,$sys_plugins_path;
+	
+	if (file_exists($repos.'/hooks/post-commit')) {
+		$FOut = fopen($repos.'/hooks/post-commit', "a+");
+	} else {
+		$FOut = fopen($repos.'/hooks/post-commit', "w");
+		$Line = '#!/bin/sh'."\n"; // add this line to first line or else the script fails
+	}
+	
+	if($FOut) {
+		$Line .= '
+#begin added by svncommitemail
+'.$sys_plugins_path.'/svncommitemail/bin/commit-email.pl '.$repos.' "$2" '.$unix_group_name.'-commits@'.$sys_lists_host.'
+#end added by svncommitemail';
+		fwrite($FOut,$Line);
+		`chmod +x $repos'/hooks/post-commit'`;
+		`chmod 700 $repos'/hooks/post-commit'`;
+		`chown $file_owner $repos'/hooks/post-commit'`;
+		fclose($FOut);
+	}
+}
+
+if ($one_repository) {
+	passthru ("cd $repos_co && $svn_path/svn commit -m\"\"");
+}
+system("chown $file_owner -R $svn");
+#system("cd $svn/ && find -type d -exec chmod 700 {} \;");
+#system("cd $svn/ && find -type f -exec chmod 600 {} \;");
+
+cron_entry(21,$err);
+?>


Property changes on: trunk/gforge_base/evolvisforge/plugins.test/scmsvn/cronjobs/create_svn.php
___________________________________________________________________
Added: svn:executable
   + *

Added: trunk/gforge_base/evolvisforge/plugins.test/scmsvn/cronjobs/create_users.php
===================================================================
--- trunk/gforge_base/evolvisforge/plugins.test/scmsvn/cronjobs/create_users.php	                        (rev 0)
+++ trunk/gforge_base/evolvisforge/plugins.test/scmsvn/cronjobs/create_users.php	2010-02-26 00:19:01 UTC (rev 4850)
@@ -0,0 +1,66 @@
+#! /usr/bin/php4 -f
+<?php
+/**
+ * create_users.php 
+ *
+ * Francisco Gimeno <kikov at fco-gimeno.com>
+ *
+ * @version   $Id
+ */
+
+require ('squal_pre.php');
+
+//
+//      Owner of files - apache
+//
+$file_owner='nobody:nogroup';
+
+$first_letter = false;
+
+if ($argc < 2 ) {
+	echo "Usage ".$argv[0]." <path> <-f>\n";
+	echo "-f   First Letter activated: users/a/abel\n";
+	exit (0);
+}
+$upload_path = $argv[1];
+if ($argv[2]=='-f') {
+   $first_letter = true;
+}
+
+/*
+
+	This script create the gforge/upload directory for users
+
+*/
+
+
+/*
+	Get users
+*/
+
+$res = db_query("SELECT user_name FROM users WHERE status='A';");
+if (!$res) {
+	echo "Error!\n";
+}
+
+system("[ ! -d $upload_path/users ] && mkdir $upload_path/users");
+
+while ( $row = db_fetch_array($res) ) {
+	echo "Name:".$row["user_name"]." \n";
+
+	if ($first_letter) {
+	   system ("[ ! -d $upload_path/users/".$row["user_name"][0]."/".$row["user_name"]." ] && mkdir -p $upload_path/users/".$row["user_name"][0]."/".$row["user_name"]);
+	   system ("[ ! -d $upload_path/users/".$row["user_name"][0]."/".$row["user_name"]."/private ] && mkdir -p $upload_path/users/".$row["user_name"][0]."/".$row["user_name"]."/private");
+	   system ("[ ! -d $upload_path/users/".$row["user_name"][0]."/".$row["user_name"]."/www ] && mkdir -p $upload_path/users/".$row["user_name"][0]."/".$row["user_name"]."/www");
+	} else {
+	   system ("[ ! -d $upload_path/users/".$row["user_name"]." ] && mkdir -p $upload_path/users/".$row["user_name"]);
+	   system ("[ ! -d $upload_path/users/".$row["user_name"]."/private ] && mkdir -p $upload_path/users/".$row["user_name"]."/private");
+	   system ("[ ! -d $upload_path/users/".$row["user_name"]."/www ] && mkdir -p $upload_path/users/".$row["user_name"]."/www");
+	}
+}
+
+system("chown $file_owner -R $upload_path/users");
+system("cd $upload_path/users ; find -type d -exec chmod 700 {} \;");
+system("cd $upload_path/users ; find -type f -exec chmod 600 {} \;");
+
+?>


Property changes on: trunk/gforge_base/evolvisforge/plugins.test/scmsvn/cronjobs/create_users.php
___________________________________________________________________
Added: svn:executable
   + *

Added: trunk/gforge_base/evolvisforge/plugins.test/scmsvn/cronjobs/crontab.in
===================================================================
--- trunk/gforge_base/evolvisforge/plugins.test/scmsvn/cronjobs/crontab.in	                        (rev 0)
+++ trunk/gforge_base/evolvisforge/plugins.test/scmsvn/cronjobs/crontab.in	2010-02-26 00:19:01 UTC (rev 4850)
@@ -0,0 +1,52 @@
+#
+#       Create the blank cvs trees for SVN-over-SSH
+#	(all repositories owned by corresponding groups)
+#
+#21 * * * * $PHP $GFORGE/plugins/scmsvn/bin/svn-create.php
+
+#
+#       Create the blank svn trees for SVN-over-DAV
+#	(all repositories owned by apache)
+#
+#21 * * * * $PHP $GFORGE/plugins/scmsvn/cronjobs/create_svn.php
+
+
+#
+#	Create SVN tarballs
+#
+#
+#5 3 * * * $PHP $GFORGE/plugins/scmsvn/cronjobs/tarballs.php
+
+#
+#	Create SVN snapshots
+#
+# SVNROOT and SCMSNAPSHOTSDIR variables are hard-coded in the script, so
+# you'll have to edit the script if necessary.
+#
+#35 3 * * * /bin/sh $GFORGE/plugins/scmsvn/bin/snapshots.sh generate
+
+#
+#	Daily SVN stats collection
+#
+#20 1 * * * $PHP $GFORGE/plugins/scmsvn/cronjobs/svn-stats.php
+
+#
+#       *.company.com creation of group home dirs
+#
+12 * * * * $PHP $GFORGE/plugins/scmsvn/cronjobs/create_group_home.php /var/www/homedirs/
+
+#
+#       users.company.com creation of user dirs
+#
+15 * * * * $PHP $GFORGE/plugins/scmsvn/cronjobs/create_users.php /var/www/homedirs/
+
+#
+#       structure for versioned docman
+#
+18 * * * * $PHP $GFORGE/plugins/scmsvn/cronjobs/create_docman.php
+
+#
+#       structure for subversion repos
+#
+20 * * * * $PHP $GFORGE/plugins/scmsvn/cronjobs/create_svn.php
+

Added: trunk/gforge_base/evolvisforge/plugins.test/scmsvn/cronjobs/default_page.php
===================================================================
--- trunk/gforge_base/evolvisforge/plugins.test/scmsvn/cronjobs/default_page.php	                        (rev 0)
+++ trunk/gforge_base/evolvisforge/plugins.test/scmsvn/cronjobs/default_page.php	2010-02-26 00:19:01 UTC (rev 4850)
@@ -0,0 +1,197 @@
+<?php
+
+$domain=ereg_replace('[^\.]*\.(.*)$','\1',$GLOBALS['HTTP_HOST']);
+$group_name=ereg_replace('([^\.]*)\..*$','\1',$GLOBALS['HTTP_HOST']);
+
+echo '<?xml version="1.0" encoding="UTF-8"?>';
+?>
+<!DOCTYPE html
+	PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+	"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en   ">
+
+  <head>
+	<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+	<title><?php echo $project_name; ?></title>
+	<script language="JavaScript" type="text/javascript">
+	<!--
+	function help_window(helpurl) {
+		HelpWin = window.open( helpurl,'HelpWindow','scrollbars=yes,resizable=yes,toolbar=no,height=400,width=400');
+	}
+	// -->
+		</script>
+
+<style type="text/css">
+	<!--
+	BODY {
+		margin-top: 3;
+		margin-left: 3;
+		margin-right: 3;
+		margin-bottom: 3;
+		background: #01004e;
+	}
+	ol,ul,p,body,td,tr,th,form { font-family: verdana,arial,helvetica,sans-serif; font-size:small;
+		color: #333333; }
+
+	h1 { font-size: x-large; font-family: verdana,arial,helvetica,sans-serif; }
+	h2 { font-size: large; font-family: verdana,arial,helvetica,sans-serif; }
+	h3 { font-size: medium; font-family: verdana,arial,helvetica,sans-serif; }
+	h4 { font-size: small; font-family: verdana,arial,helvetica,sans-serif; }
+	h5 { font-size: x-small; font-family: verdana,arial,helvetica,sans-serif; }
+	h6 { font-size: xx-small; font-family: verdana,arial,helvetica,sans-serif; }
+
+	pre,tt { font-family: courier,sans-serif }
+
+	a:link { text-decoration:none }
+	a:visited { text-decoration:none }
+	a:active { text-decoration:none }
+	a:hover { text-decoration:underline; color:red }
+
+	.titlebar { color: black; text-decoration: none; font-weight: bold; }
+	a.tablink { color: black; text-decoration: none; font-weight: bold; font-size: x-small; }
+	a.tablink:visited { color: black; text-decoration: none; font-weight: bold; font-size: x-small; }
+	a.tablink:hover { text-decoration: none; color: black; font-weight: bold; font-size: x-small; }
+	a.tabsellink { color: black; text-decoration: none; font-weight: bold; font-size: x-small; }
+	a.tabsellink:visited { color: black; text-decoration: none; font-weight: bold; font-size: x-small; }
+	a.tabsellink:hover { text-decoration: none; color: black; font-weight: bold; font-size: x-small; }
+	-->
+</style>
+
+</head>
+
+<body>
+
+<table border="0" width="100%" cellspacing="0" cellpadding="0">
+
+	<tr>
+		<td><a href="/"><img src="http://<?php echo $domain; ?>/themes/gforge/images/logo.png" border="0" alt="" width="198" height="52" /></a></td>
+	</tr>
+
+</table>
+
+<table border="0" width="100%" cellspacing="0" cellpadding="0">
+
+	<tr>
+		<td>&nbsp;</td>
+		<td colspan="3">
+
+
+
+		<!-- start tabs -->
+
+	<tr>
+		<td align="left" bgcolor="#E0E0E0" width="9"><img src="http://<?php echo $domain; ?>/themes/gforge/images/tabs/topleft.png" height="9" width="9" alt="" /></td>
+		<td bgcolor="#E0E0E0" width="30"><img src="http://<?php echo $domain; ?>/themes/gforge/images/clear.png" width="30" height="1" alt="" /></td>
+		<td bgcolor="#E0E0E0"><img src="http://<?php echo $domain; ?>/themes/gforge/images/clear.png" width="1" height="1" alt="" /></td>
+		<td bgcolor="#E0E0E0" width="30"><img src="http://<?php echo $domain; ?>/themes/gforge/images/clear.png" width="30" height="1" alt="" /></td>
+		<td align="right" bgcolor="#E0E0E0" width="9"><img src="http://<?php echo $domain; ?>/themes/gforge/images/tabs/topright.png" height="9" width="9" alt="" /></td>
+	</tr>
+
+	<tr>
+
+		<!-- Outer body row -->
+
+		<td bgcolor="#E0E0E0"><img src="http://<?php echo $domain; ?>/themes/gforge/images/clear.png" width="10" height="1" alt="" /></td>
+		<td valign="top" width="99%" bgcolor="#E0E0E0" colspan="3">
+
+			<!-- Inner Tabs / Shell -->
+
+			<table border="0" width="100%" cellspacing="0" cellpadding="0">
+			<tr>
+				<td align="left" bgcolor="#ffffff" width="9"><img src="http://<?php echo $domain; ?>/themes/gforge/images/tabs/topleft-inner.png" height="9" width="9" alt="" /></td>
+				<td bgcolor="#ffffff"><img src="http://<?php echo $domain; ?>/themes/gforge/images/clear.png" width="1" height="1" alt="" /></td>
+				<td align="right" bgcolor="#ffffff" width="9"><img src="http://<?php echo $domain; ?>/themes/gforge/images/tabs/topright-inner.png" height="9" width="9" alt="" /></td>
+			</tr>
+
+			<tr>
+				<td bgcolor="#ffffff"><img src="http://<?php echo $domain; ?>/themes/gforge/images/clear.png" width="10" height="1" alt="" /></td>
+				<td valign="top" width="99%" bgcolor="white">
+
+	<!-- whole page table -->
+<table width="100%" cellpadding="5" cellspacing="0" border="0">
+<tr><td width="65%" valign="top">
+<?php if ($handle=fopen('http://'.$domain.'/export/projtitl.php?group_name='.$group_name,'r')){
+$contents = '';
+while (!feof($handle)) {
+	$contents .= fread($handle, 8192);
+}
+fclose($handle);
+echo $contents; } ?>
+
+<?php if ($handle=fopen('http://'.$domain.'/export/projnews.php?group_name='.$group_name,'r')){
+$contents = '';
+while (!feof($handle)) {
+	$contents .= fread($handle, 8192);
+}
+fclose($handle);
+$contents=str_replace('href="/','href="http://'.$domain.'/',$contents);
+echo $contents; } ?>
+
+</td>
+
+<td width="35%" valign="top">
+
+		<table cellspacing="0" cellpadding="1" width="100%" border="0" bgcolor="#d5d5d7">
+		<tr><td>
+			<table cellspacing="0" cellpadding="2" width="100%" border="0" bgcolor="#eaecef">
+				<tr style="background-color:#d5d5d7" align="center">
+					<td colspan="2"><span class="titlebar">Project Summary</span></td>
+				</tr>
+				<tr align="left">
+					<td colspan="2">
+
+<?php if($handle=fopen('http://'.$domain.'/export/projhtml.php?group_name='.$group_name,'r')){
+$contents = '';
+while (!feof($handle)) {
+	$contents .= fread($handle, 8192);
+}
+fclose($handle);
+$contents=str_replace('href="/','href="http://'.$domain.'/',$contents);
+$contents=str_replace('src="/','src="http://'.$domain.'/',$contents);
+echo $contents; } ?>
+
+					</td>
+				</tr>
+			</table>
+		</td></tr>
+		</table><p>&nbsp;</p>
+</td></tr></table>
+			&nbsp;<p>
+			<center>
+			<a href="http://gforgegroup.com/"><img src="http://gforge.org/pro/gforgebanner.jpg" height="60" width="468" border="0" alt="GForge Group Professional Services" /></a><br /><br />
+			</center>
+			<!-- end main body row -->
+
+
+				</td>
+				<td width="10" bgcolor="#ffffff"><img src="http://<?php echo $domain; ?>/themes/gforge/images/clear.png" width="2" height="1" alt="" /></td>
+			</tr>
+			<tr>
+				<td align="left" bgcolor="#E0E0E0" width="9"><img src="http://<?php echo $domain; ?>/themes/gforge/images/tabs/bottomleft-inner.png" height="11" width="11" alt="" /></td>
+				<td bgcolor="#ffffff"><img src="http://<?php echo $domain; ?>/themes/gforge/images/clear.png" width="1" height="1" alt="" /></td>
+				<td align="right" bgcolor="#E0E0E0" width="9"><img src="http://<?php echo $domain; ?>/themes/gforge/images/tabs/bottomright-inner.png" height="11" width="11" alt="" /></td>
+			</tr>
+			</table>
+
+		<!-- end inner body row -->
+
+		</td>
+		<td width="10" bgcolor="#E0E0E0"><img src="http://<?php echo $domain; ?>/themes/gforge/images/clear.png" width="2" height="1" alt="" /></td>
+	</tr>
+	<tr>
+		<td align="left" bgcolor="#E0E0E0" width="9"><img src="http://<?php echo $domain; ?>/themes/gforge/images/tabs/bottomleft.png" height="9" width="9" alt="" /></td>
+		<td bgcolor="#E0E0E0" colspan="3"><img src="http://<?php echo $domain; ?>/themes/gforge/images/clear.png" width="1" height="1" alt="" /></td>
+		<td align="right" bgcolor="#E0E0E0" width="9"><img src="http://<?php echo $domain; ?>/themes/gforge/images/tabs/bottomright.png" height="9" width="9" alt="" /></td>
+	</tr>
+</table>
+
+<!-- PLEASE LEAVE "Powered By GForge" on your site -->
+<br />
+<center>
+<a href="http://gforge.org/"><img src="http://gforge.org/images/pow-gforge.png" alt="Powered By GForge Collaborative Development Environment" border="0" /></a>
+</center>
+
+
+</body>
+</html>

Added: trunk/gforge_base/evolvisforge/plugins.test/scmsvn/cronjobs/svn-index.php
===================================================================
--- trunk/gforge_base/evolvisforge/plugins.test/scmsvn/cronjobs/svn-index.php	                        (rev 0)
+++ trunk/gforge_base/evolvisforge/plugins.test/scmsvn/cronjobs/svn-index.php	2010-02-26 00:19:01 UTC (rev 4850)
@@ -0,0 +1,39 @@
+<?php
+ 
+require_once('squal_pre.php');    // Initial db and session library, opens session
+?>
+<html> 
+ <head> 
+ <title>Subversion Repositories at <?php echo $sys_name; ?></title> 
+ </head> 
+ <body> 
+ 
+
+
+<h2>Subversion Repositories at <?php echo $sys_name; ?> </h2> 
+ <p><?php 
+     $svnparentpath = "/var/lib/gforge/docman/groups"; 
+     $svnparenturl = "/groups"; 
+ 
+    db_begin();
+
+    $res = db_query("SELECT unix_group_name,group_name FROM groups WHERE status='A' AND is_public='1' AND use_cvs='1';");
+    if (!$res) {
+            echo "Error!\n";
+    }
+	    
+    while ( $row = db_fetch_array($res) ) {
+	$svndir = $svnparentpath . "/" . $row["unix_group_name"];
+	if ( is_dir ($svndir) ) {
+		echo "<a href=\"" . $svnparenturl . "/". $row["unix_group_name"] ."\">"; 
+		echo $row["group_name"]. "</a><br />\n";
+	}
+
+    }
+ ?> 
+ </p> 
+ 
+
+
+</body> 
+</html> 

Added: trunk/gforge_base/evolvisforge/plugins.test/scmsvn/cronjobs/svn-stats.php
===================================================================
--- trunk/gforge_base/evolvisforge/plugins.test/scmsvn/cronjobs/svn-stats.php	                        (rev 0)
+++ trunk/gforge_base/evolvisforge/plugins.test/scmsvn/cronjobs/svn-stats.php	2010-02-26 00:19:01 UTC (rev 4850)
@@ -0,0 +1,431 @@
+<?php
+/**
+* This file is part of GForge.
+* 
+* This is a translation if svn-stats.pl
+*
+* GForge 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.
+*
+* GForge is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+* GNU General Public License for more details.
+*
+* You should have received a copy of the GNU General Public License
+* along with GForge; if not, write to the Free Software
+* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  US
+*/
+require_once ('squal_pre.php');
+require_once ('common/include/cron_utils.php');
+require_once ('plugins/scmsvn/config.php');
+
+$pluginname = "scmsvn" ;
+// This variable should probably be moved to this plugin's config.php
+$svnroot = $svndir_prefix;
+$ARGV = $GLOBALS['argv'];
+$err = '';
+$debug = 0;
+
+// You should set this variable manually in the configuration file
+if (!isset($svn_bin)) {
+	$svn_bin = "svn"; // Assumes svn is in the PATH
+}
+
+// Set up some globals for use when parsing the XML log file
+$last_user = '';
+$last_time = '';
+$last_tag = '';
+$adds = array();
+$deletes = array();
+$updates = array();
+$commits = array();
+$usr_adds = array();
+$usr_deletes = array();
+$usr_updates = array();
+$start_time = 0;
+$end_time = 0;
+$time_ok = false;
+$date_key = '';
+$user_list = array();
+
+// Handle closing an element.
+// We are only actually interested in LOGENTRY type things, as this is 
+// where we update our commit total
+function endElement($parser, $name) {
+  debug ("endelement $name") ;
+	global $time_ok, $last_tag, $commits, $date_key;
+	if ($name == "LOGENTRY" && $time_ok) {
+		$commits[$date_key]++;
+	}
+	$last_tag = "";
+}
+
+// Handle character data
+// We only care about AUTHOR and DATE entries, so we can figure out who
+// is doing things and when. We use last_tag to keep track of the
+// last element we were in.
+function charData($parser, $chars) {
+  debug ("chardata $chars") ;
+	global $last_tag, $last_user, $last_time, $start_time,
+			$end_time, $time_ok, $date_key, $user_list;
+	switch ($last_tag) {
+		case "AUTHOR":
+			$last_user = strtolower(trim($chars));
+			// We can save time by looking up users and caching them
+			if (!array_key_exists($last_user, $user_list)) {
+				// trying to get user id from user name
+				$user_res = db_query("SELECT user_id FROM users WHERE " .
+									"user_name='$last_user'");
+	            if ($user_row = db_fetch_array($user_res)) {
+					$user_list[$last_user] = $user_row[0];
+				} else {
+					// We don't know about them, so give them the 
+					// nonsensical -1 value
+					$user_list[$last_user] = -1;
+				}
+			}
+			debug("Got author $last_user");
+			break;
+		case "DATE":
+			$chars = preg_replace('/T(\d\d:\d\d:\d\d)\.\d+Z?$/', ' ${1}', $chars);
+			$last_time = strtotime($chars);
+			// If we don't have a start end end time, we should assume
+			// that the time is OK.
+			// If we do have the start and end time, make sure this event
+			// is within those times.
+			debug ("start $start_time, end $end_time, last $last_time");
+			if (!$start_time && !$end_time) {
+				$time_ok = true;
+			} elseif ($start_time <= $last_time && $last_time <= $end_time) {
+				$time_ok = true;
+			} else {
+				$time_ok = false;
+			}
+			// We need to set up the date key that we use when generating
+			// totals
+			if ($time_ok) {
+	 			$year	= gmstrftime("%Y", $last_time);
+				$month	= gmstrftime("%m", $last_time);
+				$day	= gmstrftime("%d", $last_time);
+				$month_string = sprintf( "%04d%02d", $year, $month );
+				$date_key = "${month_string}-$day";
+			}
+			debug("Got date $chars $last_time $date_key");
+			break;
+	}
+}
+
+function startElement($parser, $name, $attrs) {
+  debug ("startelement $name");
+    global $last_user, $last_time, $last_tag, $time_ok,
+			$adds, $deletes, $updates, $commits, $date_key,
+			$usr_adds, $usr_deletes, $usr_updates;
+	$last_tag = $name;
+	switch($name) {
+		case "LOG":
+			// Clear up at the start of a new log file
+			$adds = array();
+			$deletes = array();
+			$updates = array();
+			$commits = array();
+			$usr_adds = array();
+			$usr_deletes = array();
+			$usr_updates = array();
+			$date_key = '';
+			break;
+		case "LOGENTRY":
+			// Make sure we clean up before doing a new log entry
+			$last_user = "";
+			$last_time = "";
+			break;
+		case "PATH":
+			if ($time_ok && $date_key) {
+				if ($attrs['ACTION'] == "M") {
+					$updates[$date_key]++;
+					if ($last_user) {
+						$usr_updates[$date_key][$last_user]++;
+					}
+				} elseif ($attrs['ACTION'] == "A") {
+					$adds[$date_key]++;
+					if ($last_user) {
+						$usr_adds[$date_key][$last_user]++;
+					}
+				} elseif ($attrs['ACTION'] == "D") {
+					$deletes[$date_key]++;
+					if ($last_user) {
+						$usr_deletes[$date_key][$last_user]++;
+					}
+				}
+			}
+			break;
+	}
+}
+
+function debug($message) {
+	global $debug, $err;
+	if ($debug) {
+		$err .= $message."\n";
+	}
+	if ($debug > 1) {
+		echo "$message\n";
+		flush();
+		ob_end_flush();
+	}
+}
+
+db_begin();
+
+$pluginid = get_plugin_id($pluginname);
+
+if ($ARGV[1] && $ARGV[2] && $ARGV[3]) {
+	//$ARGV[1] = Year
+	//$ARGV[2] = Month
+	//$ARGV[3] = Day
+	
+	$day_begin = gmmktime( 0, 0, 0, $ARGV[2], $ARGV[3], $ARGV[1] );
+	//	$day_begin = timegm( 0, 0, 0, $ARGV[2], $ARGV[1] - 1, $ARGV[0] - 1900 );
+	$day_end = $day_begin + 86400;
+ 
+	$rollback = process_day($day_begin, $day_end);
+} else if ($ARGV[1]=='all' && !$ARGV[2] && !$ARGV[3]) { 
+	// Do ALL the days
+	debug('Processing all days');
+	$rollback = process_day();
+
+} else {
+	// Do yesterday
+	$local_time = localtime();
+	// Start at midnight last night.
+	$day_end = gmmktime(0, 0, 0, $local_time[4] + 1, 
+						$local_time[3], $local_time[5] );
+	// go until midnight yesterday.
+	$day_begin = $day_end - 86400;
+
+	$rollback = process_day($day_begin, $day_end);
+}
+
+if ($rollback) {
+	db_rollback();
+} else {
+	db_commit();
+}
+
+// lenp Not sure about this...
+cron_entry(24,$err);
+
+function process_day($day_begin=0, $day_end=0) {
+	global $err;
+	global $pluginid;
+	global $svnroot;
+	global $svn_bin;
+	global $start_time;
+	global $end_time;
+	global $date_key;
+	global $time_ok;
+	global $last_time;
+	global $user_list;
+	global $usr_adds, $usr_deletes, $usr_updates, $adds, $deletes, $updates,
+			$commits;
+
+	$start_time = $day_begin;
+	$end_time = $day_end;
+
+	if ($day_begin && $day_end) {
+	 	$year	= gmstrftime("%Y", $day_begin );
+		$month	= gmstrftime("%m", $day_begin );
+		$day	= gmstrftime("%d", $day_begin );
+		$month_string = sprintf( "%04d%02d", $year, $month );
+		debug('Checking with SVN for actions on day ' .
+				$day.' month '.$month.' year '.$year);
+		$date_key = "${month_string}-$day";
+	}
+
+	$rollback = false;
+	
+	// Lookup all the groups that use this plugin, use SCM and
+	// are active
+	$res = db_query("SELECT group_plugin.group_id, groups.unix_group_name
+				FROM group_plugin, groups
+				WHERE group_plugin.plugin_id = $pluginid
+				AND groups.use_scm = 1
+				AND groups.status = 'A'
+				AND group_plugin.group_id = groups.group_id");
+	
+	if (!$res) {
+		$err .=  "Error! Database Query Failed: ".db_error();
+		return 1;
+	}
+
+	while ($groups =& db_fetch_array($res)) {
+		$logfile = tempnam("/tmp", "svnlog");
+		debug('Working on group ' . $groups[1]);
+
+		$svnroot_group = "$svnroot" . "/" . $groups[1];	
+		if (!is_dir($svnroot_group)) {
+			debug("Skipping repository $svnroot_group : doesn't exist");
+		}
+
+		// Now, examine the log file for the group
+
+		$cmd = "$svn_bin log file://$svnroot_group --xml -v -q > $logfile";
+		debug($cmd);
+		exec($cmd, $cmd_out, $cmd_retval);
+		$xml_parser = xml_parser_create();
+		xml_set_element_handler($xml_parser, "startElement", "endElement");
+		xml_set_character_data_handler($xml_parser, "charData");
+
+		if (!$cmd_retval) {
+			$xmlhandle = fopen($logfile, "r");
+			while (!feof($xmlhandle) && 
+					$data = fread($xmlhandle, 8192)) {
+				if (!xml_parse($xml_parser, $data, feof($xmlhandle))) {
+					debug("Unable to parse XML with error " .
+							xml_error_string(xml_get_error_code($xml_parser)) .
+							" on line " .
+							xml_get_current_line_number($xml_parser));
+					$rollback = true;
+					break;
+				}
+				// See if we can drop out of parsing, since
+				// the time of the last event is less than our start time
+				// and, because the log is in newest first order,
+				// we will never run into a valid event after this
+				if (!$time_ok && $last_time && $last_time < $start_time) {
+					break;
+				}
+			}
+		} else {
+			// Looks like we couldn't open svn :(
+			// Fail the run
+			if (is_file($logfile)) {
+				debug("Removing log file $logfile");
+				unlink($logfile);
+			}
+			debug("Unable to svn group $svnroot_group");
+			$rollback = true;
+			xml_parser_free($xml_parser);
+			break;
+		}
+		xml_parser_free($xml_parser);
+		if (is_file($logfile)) {
+			debug("Removing log file $logfile");
+			unlink($logfile);
+		}
+
+		// We have to loop through all the days we've looked at,
+		// extracting the month and day from the date_key
+		foreach (array_keys($commits) as $key) {
+			// Cleaning stats_cvs_* table for the current day to
+			// avoid conflicting index problem.
+			list($m, $d) = split("-", $key);
+			$del_grp_sql = "DELETE FROM stats_cvs_group
+				WHERE month = '$m'
+				AND day = '$d'
+				AND group_id = '$groups[0]'";
+			$del_grp_res = db_query($del_grp_sql);
+			debug($del_grp_sql);
+			if (!$del_grp_res) {
+				$err .= 'Error cleaning stats_cvs_group for ' .
+						"current day $d, month $m and current group id " .
+						$groups[0] . ': ' . db_error();
+				// Break out completely
+				$rollback = true;
+				debug("Unable to clean stats_cvs_group");
+				break 2;
+			}
+	
+			$del_usr_sql = "DELETE FROM stats_cvs_user
+				WHERE month = '$m'
+				AND day = '$d'
+				AND group_id = '$groups[0]'";
+			$del_usr_res = db_query($del_usr_sql);
+			debug($del_usr_sql);
+			if (!$del_usr_res) {
+				$err .= 'Error cleaning stats_cvs_user for ' .
+						"current day $d, month $m and current group id " .
+						$groups[0] . ': ' . db_error();
+				// Break out completely
+				$rollback = true;
+				debug("Unable to clean stats_cvs_user");
+				break 2;
+			}
+
+			$ins_grp_sql = "INSERT INTO stats_cvs_group
+				(month,day,group_id,checkouts,commits,adds)
+				VALUES
+				('$m',
+				'$d',
+				'$groups[0]',
+				'0',
+				'" . ($updates[$key] ? $updates[$key] : 0) . "',
+				'" . ($adds[$key] ? $adds[$key] : 0) . "')";
+
+			debug($ins_grp_sql);
+			if (!db_query($ins_grp_sql)) {
+				$err .= 'Insertion in stats_cvs_group failed: ' . 
+						$ins_grp_sql . ' - ' . db_error();
+				// Break out completely
+				$rollback = true;
+				debug("Unable to insert to stats_cvs_group");
+				break 2;
+			}
+
+			// Now, loop through the users we've seen
+			// We want to update any user who's got an add, delete
+			// or update
+			foreach (array_keys($user_list) as $user_name) {
+				if ($user_list{$user_name} > 0 &&
+					((array_key_exists($key, $usr_updates) &&
+					  array_key_exists($user_name, $usr_updates[$key])) ||
+					 (array_key_exists($key, $usr_deletes) &&
+					  array_key_exists($user_name, $usr_deletes[$key])) ||
+					 (array_key_exists($key, $usr_adds) &&
+                      array_key_exists($user_name, $usr_adds[$key])))) {
+
+					$user_id = $user_list{$user_name};
+					$usr_sql = "INSERT INTO stats_cvs_user
+						(month,day,group_id,user_id,commits,adds) VALUES
+						('$m',
+					'$d',
+					'$groups[0]',
+					'$user_id',
+					'" . ($usr_updates{$key}{$user_name}?$usr_updates{$key}{$user_name}:0)  . "',
+					'" . ($usr_adds{$key}{$user_name}?$usr_adds{$key}{$user_name}:0)  . "')";
+
+					debug($usr_sql);
+
+					if (!db_query($usr_sql)) {
+						$err .= 'Insertion in stats_cvs_user failed: ' . 
+								$usr_sql . ' - ' . db_error();
+						$rollback = true;
+						debug("Unable to insert into stats_cvs_user");
+						break 3;
+					}
+				}
+			}
+		}
+		debug("Finished group : $groups[1]");
+	}
+	return $rollback;
+}
+
+function get_plugin_id($pluginname){
+	$res = db_query("SELECT plugin_id FROM plugins WHERE plugin_name = '" .
+					$pluginname."'");	
+	if (!$res) {
+		$err .=  "Error! Database Query Failed: ".db_error();
+		db_rollback();
+		exit;
+	}
+	if ($row =& db_fetch_array($res)) {
+		$plugin_id = $row[0];
+	}
+ 
+	return $plugin_id;
+}
+
+
+?>

Added: trunk/gforge_base/evolvisforge/plugins.test/scmsvn/cronjobs/tarballs.php
===================================================================
--- trunk/gforge_base/evolvisforge/plugins.test/scmsvn/cronjobs/tarballs.php	                        (rev 0)
+++ trunk/gforge_base/evolvisforge/plugins.test/scmsvn/cronjobs/tarballs.php	2010-02-26 00:19:01 UTC (rev 4850)
@@ -0,0 +1,57 @@
+#! /usr/bin/php4 -f
+<?php
+
+$verbose=0;
+$scmname='scmroot';
+// For portability, if hot-backup.py path vary from one distro to another add some path
+// in the next line
+putenv("PATH=/usr/lib/subversion:".getenv('PATH'));
+$BACKUPPROG='hot-backup.py';
+
+require ('squal_pre.php');
+require ('common/include/cron_utils.php');
+
+$sys_scm_root_path = "$sys_chroot$svndir_prefix";
+
+if(!isset($sys_scm_root_path)) {
+	$err = 'You have to define $svndir_prefix and possibly $sys_chroot variable in your config file.';
+} elseif(!isset($sys_scm_tarballs_path)) {
+	$err = 'You have to define $sys_scm_tarballs_path variable in your config file.';
+} elseif(!is_dir($sys_scm_root_path) || !is_readable($sys_scm_root_path)) {
+	$err = $sys_scm_root_path.' is not a directory or is not readable.';
+} elseif(!is_dir($sys_scm_tarballs_path) || !is_writable($sys_scm_tarballs_path)) {
+	$err = $sys_scm_tarballs_path.' is not a directory or is not writable.';
+} else {
+	if ($handle = opendir($sys_scm_root_path)) {
+		if ($verbose) echo "Scanning $sys_scm_root_path\n";
+		chdir($sys_scm_root_path);
+		while (false !== ($file = readdir($handle))) {
+			chdir($sys_scm_root_path);
+			if ($file != "." && $file != ".." && is_dir($file) && $file != "cvs-locks") {
+				if ($verbose) echo "Creating $sys_scm_tarballs_path/$file-$scmname.tar.gz\n";
+				mkdir("$sys_scm_tarballs_path/$file");
+				chdir($sys_scm_root_path);
+				exec("$BACKUPPROG $file $sys_scm_tarballs_path/$file 2>&1", $output);
+				chdir($sys_scm_tarballs_path);
+				exec("tar czf $sys_scm_tarballs_path/$file-$scmname.tar.gz.new $file 2>&1", $output);
+
+				if (is_file("$sys_scm_tarballs_path/$file-$scmname.tar.gz.new")){
+					rename("$sys_scm_tarballs_path/$file-$scmname.tar.gz.new","$sys_scm_tarballs_path/$file-$scmname.tar.gz");
+					rename("$sys_scm_tarballs_path/$file","$sys_scm_tarballs_path/$file.done_by_cron");
+					system("rm -rf $sys_scm_tarballs_path/$file.done_by_cron");
+				}
+			}
+		}
+		closedir($handle);
+	}
+	if($output) {
+		$err = implode("\n", $output);
+	}
+	if(empty($err)) {
+		$err = 'SCM tarballs generated';
+	}
+}
+
+cron_entry(19, $err);
+
+?>


Property changes on: trunk/gforge_base/evolvisforge/plugins.test/scmsvn/cronjobs/tarballs.php
___________________________________________________________________
Added: svn:executable
   + *

Added: trunk/gforge_base/evolvisforge/plugins.test/scmsvn/cronjobs/www/index.php
===================================================================
--- trunk/gforge_base/evolvisforge/plugins.test/scmsvn/cronjobs/www/index.php	                        (rev 0)
+++ trunk/gforge_base/evolvisforge/plugins.test/scmsvn/cronjobs/www/index.php	2010-02-26 00:19:01 UTC (rev 4850)
@@ -0,0 +1,2 @@
+<h1> Welcome to Subversion... </h1>
+

Added: trunk/gforge_base/evolvisforge/plugins.test/scmsvn/cronjobs/www/svnindex.css
===================================================================
--- trunk/gforge_base/evolvisforge/plugins.test/scmsvn/cronjobs/www/svnindex.css	                        (rev 0)
+++ trunk/gforge_base/evolvisforge/plugins.test/scmsvn/cronjobs/www/svnindex.css	2010-02-26 00:19:01 UTC (rev 4850)
@@ -0,0 +1,84 @@
+body{
+  margin: 0;
+  padding: 0;
+}
+
+a {
+  color: navy;
+}
+
+.footer {
+  margin-top: 8em;
+  padding: 0.5em 1em 0.5em;
+  border: 1px solid;
+  border-width: 1px 0;
+  clear: both;
+  border-color: rgb(30%,30%,50%) navy rgb(75%,80%,85%) navy;
+  background: rgb(88%,90%,92%);
+  font-size: 80%;
+}
+
+.svn {
+  margin: 3em;
+}
+
+.rev {
+  margin-right: 3px;
+  padding-left: 3px;
+  text-align: left;
+  font-size: 120%;
+}
+
+.dir a {
+  text-decoration: none;
+  color: black;
+}
+
+.file a {
+  text-decoration: none;
+  color: black;
+}
+
+.path {
+  margin: 3px;
+  padding: 3px;
+  background: #FFCC66;
+  font-size: 120%;
+}
+
+.updir {
+  margin: 3px;
+  padding: 3px;
+  margin-left: 3em;
+  background: #FFEEAA;
+}
+
+.file {
+  margin: 3px;
+  padding: 3px;
+  margin-left: 3em;
+  background: rgb(95%,95%,95%);
+}
+
+.file:hover {
+  margin: 3px;
+  padding: 3px;
+  margin-left: 3em;
+  background: rgb(100%,100%,90%);
+/*  border: 1px black solid; */
+}
+
+.dir {
+  margin: 3px;
+  padding: 3px;
+  margin-left: 3em;
+  background: rgb(90%,90%,90%);
+}
+
+.dir:hover {
+  margin: 3px;
+  padding: 3px;
+  margin-left: 3em;
+  background: rgb(100%,100%,80%);
+/*  border: 1px black solid; */
+}

Added: trunk/gforge_base/evolvisforge/plugins.test/scmsvn/cronjobs/www/svnindex.xsl
===================================================================
--- trunk/gforge_base/evolvisforge/plugins.test/scmsvn/cronjobs/www/svnindex.xsl	                        (rev 0)
+++ trunk/gforge_base/evolvisforge/plugins.test/scmsvn/cronjobs/www/svnindex.xsl	2010-02-26 00:19:01 UTC (rev 4850)
@@ -0,0 +1,97 @@
+<?xml version="1.0"?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
+
+  <xsl:output method="html"/>
+
+  <xsl:template match="*"/>
+
+  <xsl:template match="svn">
+    <html>
+      <head>
+        <title>
+          <xsl:if test="string-length(index/@name) != 0">
+            <xsl:value-of select="index/@name"/>
+            <xsl:text>: </xsl:text>
+          </xsl:if>
+          <xsl:value-of select="index/@path"/>
+        </title>
+        <link rel="stylesheet" type="text/css" href="/svnindex.css"/>
+      </head>
+      <body>
+        <div class="svn">
+          <xsl:apply-templates/>
+        </div>
+        <div class="footer">
+          <xsl:text>Powered by </xsl:text>
+          <xsl:element name="a">
+            <xsl:attribute name="href">
+              <xsl:value-of select="@href"/>
+            </xsl:attribute>
+            <xsl:text>Subversion</xsl:text>
+          </xsl:element>
+          <xsl:text> </xsl:text>
+          <xsl:value-of select="@version"/>
+        </div>
+      </body>
+    </html>
+  </xsl:template>
+
+  <xsl:template match="index">
+    <div class="rev">
+      <xsl:if test="string-length(@name) != 0">
+        <xsl:value-of select="@name"/>
+        <xsl:if test="string-length(@rev) != 0">
+          <xsl:text> &#8212; </xsl:text>
+        </xsl:if>
+      </xsl:if>
+      <xsl:if test="string-length(@rev) != 0">
+        <xsl:text>Revision </xsl:text>
+        <xsl:value-of select="@rev"/>
+      </xsl:if>
+    </div>
+    <div class="path">
+      <xsl:value-of select="@path"/>
+    </div>
+    <xsl:apply-templates select="updir"/>
+    <xsl:apply-templates select="dir"/>
+    <xsl:apply-templates select="file"/>
+  </xsl:template>
+
+  <xsl:template match="updir">
+    <div class="updir">
+      <xsl:text>[</xsl:text>
+      <xsl:element name="a">
+        <xsl:attribute name="href">..</xsl:attribute>
+        <xsl:text>Parent Directory</xsl:text>
+      </xsl:element>
+      <xsl:text>]</xsl:text>
+    </div>
+    <!-- xsl:apply-templates/ -->
+  </xsl:template>
+
+  <xsl:template match="dir">
+    <div class="dir">
+      <xsl:element name="a">
+        <xsl:attribute name="href">
+          <xsl:value-of select="@href"/>
+        </xsl:attribute>
+        <xsl:value-of select="@name"/>
+        <xsl:text>/</xsl:text>
+      </xsl:element>
+    </div>
+    <!-- <xsl:apply-templates/ -->
+  </xsl:template>
+
+  <xsl:template match="file">
+    <div class="file">
+      <xsl:element name="a">
+        <xsl:attribute name="href">
+          <xsl:value-of select="@href"/>
+        </xsl:attribute>
+        <xsl:value-of select="@name"/>
+      </xsl:element>
+    </div>
+    <!-- xsl:apply-templates/ -->
+  </xsl:template>
+
+</xsl:stylesheet>

Added: trunk/gforge_base/evolvisforge/plugins.test/scmsvn/db/scmsvn-init.sql
===================================================================
--- trunk/gforge_base/evolvisforge/plugins.test/scmsvn/db/scmsvn-init.sql	                        (rev 0)
+++ trunk/gforge_base/evolvisforge/plugins.test/scmsvn/db/scmsvn-init.sql	2010-02-26 00:19:01 UTC (rev 4850)
@@ -0,0 +1,4 @@
+DROP TABLE plugin_scmsvn_group_usage;
+DROP TABLE plugin_scmsvn_stats;
+DROP SEQUENCE plugin_scmsvn_grp_usage_pk_seq;
+DROP SEQUENCE plugin_scmsvn_stats_pk_seq;

Added: trunk/gforge_base/evolvisforge/plugins.test/scmsvn/debian/README.Debian
===================================================================
--- trunk/gforge_base/evolvisforge/plugins.test/scmsvn/debian/README.Debian	                        (rev 0)
+++ trunk/gforge_base/evolvisforge/plugins.test/scmsvn/debian/README.Debian	2010-02-26 00:19:01 UTC (rev 4850)
@@ -0,0 +1,8 @@
+gforge-plugin-scmsvn for Debian
+-------------------------------
+
+This plugin holds the Subversion stuff.  It is the second step towards
+choice of SCM systems, the first being that CVS has already been
+pluginified.
+
+ -- Roland Mas <lolando at debian.org>, Sun Mar 14 15:56:15 2004

Added: trunk/gforge_base/evolvisforge/plugins.test/scmsvn/debian/changelog
===================================================================
--- trunk/gforge_base/evolvisforge/plugins.test/scmsvn/debian/changelog	                        (rev 0)
+++ trunk/gforge_base/evolvisforge/plugins.test/scmsvn/debian/changelog	2010-02-26 00:19:01 UTC (rev 4850)
@@ -0,0 +1,94 @@
+gforge-plugin-scmsvn (4.5.14-4) unstable; urgency=low
+
+  * [Roland] Depend on python-subversion rather than python2.3-subversion
+    to follow the new Python policy (closes: #383381).
+
+ -- Roland Mas <lolando at debian.org>  Fri, 18 Aug 2006 19:37:51 +0200
+
+gforge-plugin-scmsvn (4.5.14-3) unstable; urgency=low
+
+  * [Roland] Made repositories actually not-accessible when the anonymous
+    SCM option is disabled (closes: #376513).
+  * [Roland] Started using dpatch.  First patch: disable-dav, to switch
+    SVN over to SSH (for developers) and svnserve (for anonymous).
+
+ -- Roland Mas <lolando at debian.org>  Sun, 23 Jul 2006 15:07:33 +0200
+
+gforge-plugin-scmsvn (4.5.14-2) unstable; urgency=low
+
+  * [Roland] Upload to unstable.
+
+ -- Roland Mas <lolando at debian.org>  Sat, 22 Jul 2006 17:04:44 +0200
+
+gforge-plugin-scmsvn (4.5.14-1) experimental; urgency=low
+
+  * [Roland] Updated for Gforge 4.5.14.
+
+ -- Roland Mas <lolando at debian.org>  Tue,  6 Jun 2006 21:28:44 +0200
+
+gforge-plugin-scmsvn (4.5.6-1) unstable; urgency=low
+
+  * New Upstream version
+
+ -- Christian Bayle <bayle at debian.org>  Sun, 29 Jan 2006 20:10:40 +0100
+
+gforge-plugin-scmsvn (4.5.3-5) stable; urgency=low
+
+  * New Upstream version, compile for sarge
+
+ -- Christian Bayle <bayle at debian.org>  Tue,  6 Dec 2005 22:14:05 +0100
+
+gforge-plugin-scmsvn (4.5.3-4) stable; urgency=low
+
+  * New Upstream version, compile for sarge
+
+ -- Christian Bayle <bayle at debian.org>  Wed, 16 Nov 2005 19:10:12 +0100
+
+gforge-plugin-scmsvn (4.5.3-3) stable; urgency=low
+
+  * New Upstream version, compile for sarge
+
+ -- Christian Bayle <bayle at debian.org>  Sun, 13 Nov 2005 18:26:45 +0100
+
+gforge-plugin-scmsvn (4.5-3) unstable; urgency=low
+
+  * [Christian] New version in the branch
+
+ -- Christian Bayle <bayle at debian.org>  Tue,  6 Sep 2005 00:57:06 +0200
+
+gforge-plugin-scmsvn (4.5-1) unstable; urgency=low
+
+  * [Roland] Ported to Gforge 4.5.
+  * [Roland] Fixed location of the svn-stats script in crontab.
+  * [Roland] Remove .arch-ids directories at build time.
+
+ -- Roland Mas <lolando at debian.org>  Sun,  7 Aug 2005 17:32:11 +0200
+
+gforge-plugin-scmsvn (4.1-9) unstable; urgency=low
+
+  * New upstream 
+  * [Christian] Added dependancy to php4-cli
+  * [Christian] Added cronjobs/tarballs.php
+  * [Christian] Splited svn_dump_update in svn_dump and svn_update
+  svn_dump is almost identical to cvs_dump
+  * [Mathieu] Link to snapshots added
+  * [Mathieu] Integrated ViewCVS PHP wrapper inspired from CodeX and
+  CVSweb's ones
+  * [Mathieu] Created repository with fsfs backend because ViewCVS
+  requires write permission with default SVN backend
+  * [Christian] Reviewed update-inetd 
+
+ -- Christian Bayle <bayle at debian.org>  Sat, 26 Feb 2005 09:13:47 +0100
+
+gforge-plugin-scmsvn (4.0.2-1) unstable; urgency=low
+
+  * Align version with gforge
+
+ -- Christian Bayle <bayle at debian.org>  Mon, 24 Jan 2005 23:15:29 +0100
+
+gforge-plugin-scmsvn (1.0-1) unstable; urgency=low
+
+  * Initial packaging.
+
+ -- Roland Mas <lolando at debian.org>  Mon, 26 Apr 2004 16:24:21 +0200
+

Added: trunk/gforge_base/evolvisforge/plugins.test/scmsvn/debian/control
===================================================================
--- trunk/gforge_base/evolvisforge/plugins.test/scmsvn/debian/control	                        (rev 0)
+++ trunk/gforge_base/evolvisforge/plugins.test/scmsvn/debian/control	2010-02-26 00:19:01 UTC (rev 4850)
@@ -0,0 +1,15 @@
+Source: gforge-plugin-scmsvn
+Section: devel
+Priority: optional
+Maintainer: Roland Mas <lolando at debian.org>
+Uploaders: Christian Bayle <bayle at debian.org>
+Build-Depends: debhelper (>> 4.0.0), dpatch
+Standards-Version: 3.7.2
+
+Package: gforge-plugin-scmsvn
+Architecture: all
+Depends: gforge-common, gforge-db-postgresql | gforge-db, gforge-web-apache | gforge-web, subversion, subversion-tools, viewcvs, python-subversion, python (>= 2.3), php4-cli
+Description: subversion plugin for GForge
+ This plug-in contains the Subversion subsystem of Gforge.  It allows
+ each Gforge project to have its own Subversion repository, and gives
+ some control over it to the project's administrator.

Added: trunk/gforge_base/evolvisforge/plugins.test/scmsvn/debian/copyright
===================================================================
--- trunk/gforge_base/evolvisforge/plugins.test/scmsvn/debian/copyright	                        (rev 0)
+++ trunk/gforge_base/evolvisforge/plugins.test/scmsvn/debian/copyright	2010-02-26 00:19:01 UTC (rev 4850)
@@ -0,0 +1,29 @@
+This package was debianized by Roland Mas <lolando at debian.org> on
+Sun, 14 Mar 2004 15:52:43 +0100.
+
+It was downloaded from <http://gforge.org/>
+
+Upstream Author: Roland Mas <lolando at debian.org>, but the code is
+derived from Gforge code, which was itself a derivative of the
+Sourceforge code, which was copyright VA Linux Systems.  Also, part of
+it was refined by same Roland Mas <roland at gnurandal.com> under
+contract for Gforge Group, LLC.
+
+Copyright:
+
+   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; version 2 dated June, 1991.
+
+   This package is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this package; if not, write to the Free Software
+   Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+   02111-1307, USA.
+
+On Debian GNU/Linux systems, the complete text of the GNU General
+Public License can be found in `/usr/share/common-licenses/GPL'.

Added: trunk/gforge_base/evolvisforge/plugins.test/scmsvn/debian/cron.d
===================================================================
--- trunk/gforge_base/evolvisforge/plugins.test/scmsvn/debian/cron.d	                        (rev 0)
+++ trunk/gforge_base/evolvisforge/plugins.test/scmsvn/debian/cron.d	2010-02-26 00:19:01 UTC (rev 4850)
@@ -0,0 +1,15 @@
+#
+# Regular cron jobs for the gforge-plugin-scmsvn package
+#
+
+# Tarballs
+5 2 * * * root [ -x /usr/lib/gforge/plugins/scmsvn/cronjobs/tarballs.php ] && php -d include_path=/etc/gforge:/usr/share/gforge/:/usr/share/gforge/www/include /usr/lib/gforge/plugins/scmsvn/cronjobs/tarballs.php
+
+# Snapshots
+35 3 * * * root [ -x /usr/lib/gforge/plugins/scmsvn/bin/snapshots.sh ] && /usr/lib/gforge/plugins/scmsvn/bin/snapshots.sh generate
+
+# Repositories update
+45 * * * * root [ -x /usr/lib/gforge/plugins/scmsvn/bin/svn_dump.pl ] && su -s /bin/sh gforge -c /usr/lib/gforge/plugins/scmsvn/bin/svn_dump.pl && [ -x /usr/lib/gforge/plugins/scmsvn/bin/svn_update.pl ] && /usr/lib/gforge/plugins/scmsvn/bin/svn_update.pl
+
+# Statistics
+55 4 * * Sun root [ -x /usr/lib/gforge/plugins/scmsvn/cronjobs/svn-stats.php ] && php -d include_path=/etc/gforge:/usr/share/gforge/:/usr/share/gforge/www/include /usr/lib/gforge/plugins/scmsvn/cronjobs/svn-stats.php

Added: trunk/gforge_base/evolvisforge/plugins.test/scmsvn/debian/dirs
===================================================================
--- trunk/gforge_base/evolvisforge/plugins.test/scmsvn/debian/dirs	                        (rev 0)
+++ trunk/gforge_base/evolvisforge/plugins.test/scmsvn/debian/dirs	2010-02-26 00:19:01 UTC (rev 4850)
@@ -0,0 +1,40 @@
+bin
+etc
+etc/gforge
+etc/gforge/httpd.d
+etc/gforge/plugins
+etc/gforge/plugins/scmsvn
+etc/gforge/plugins/scmsvn/viewcvs/templates
+etc/gforge/plugins/scmsvn/viewcvs/templates/include
+usr
+usr/lib
+usr/lib/gforge
+usr/lib/gforge/bin
+usr/lib/gforge/plugins/
+usr/lib/gforge/plugins/scmsvn
+usr/lib/gforge/plugins/scmsvn/bin
+usr/lib/gforge/plugins/scmsvn/cgi-bin
+usr/lib/gforge/plugins/scmsvn/include
+usr/lib/gforge/plugins/scmsvn/include/languages
+usr/lib/gforge/plugins/scmsvn/lib
+usr/lib/gforge/plugins/scmsvn/cronjobs
+usr/lib/gforge/cgi-bin/plugins/scmsvn
+usr/share
+usr/share/gforge
+usr/share/gforge/etc
+usr/share/gforge/etc/httpd.d
+usr/share/gforge/www
+usr/share/gforge/www/plugins
+usr/share/gforge/www/plugins/scmsvn
+usr/share/gforge/www/plugins/scmsvn/viewcvs
+usr/share/gforge/www/plugins/scmsvn/viewcvs/icons
+usr/share/gforge/www/plugins/scmsvn/viewcvs/images
+usr/share/gforge/scm
+var
+var/log
+var/log/gforge
+var/log/gforge/svn
+var/lib
+var/lib/gforge
+var/lib/gforge/chroot
+var/lib/gforge/chroot/svnroot

Added: trunk/gforge_base/evolvisforge/plugins.test/scmsvn/debian/patches/00list
===================================================================
--- trunk/gforge_base/evolvisforge/plugins.test/scmsvn/debian/patches/00list	                        (rev 0)
+++ trunk/gforge_base/evolvisforge/plugins.test/scmsvn/debian/patches/00list	2010-02-26 00:19:01 UTC (rev 4850)
@@ -0,0 +1,2 @@
+disable-dav
+#repo-owner

Added: trunk/gforge_base/evolvisforge/plugins.test/scmsvn/debian/patches/disable-dav.dpatch
===================================================================
--- trunk/gforge_base/evolvisforge/plugins.test/scmsvn/debian/patches/disable-dav.dpatch	                        (rev 0)
+++ trunk/gforge_base/evolvisforge/plugins.test/scmsvn/debian/patches/disable-dav.dpatch	2010-02-26 00:19:01 UTC (rev 4850)
@@ -0,0 +1,24 @@
+#! /bin/sh /usr/share/dpatch/dpatch-run
+## disable-dav.dpatch by Roland Mas <lolando at debian.org>
+##
+## All lines beginning with `## DP:' are a description of the patch.
+## DP: No description.
+
+ at DPATCH@
+diff -urNad gforge-plugin-scmsvn~/etc/plugins/scmsvn/config.php gforge-plugin-scmsvn/etc/plugins/scmsvn/config.php
+--- gforge-plugin-scmsvn~/etc/plugins/scmsvn/config.php	2005-07-30 12:26:44.000000000 +0200
++++ gforge-plugin-scmsvn/etc/plugins/scmsvn/config.php	2006-07-23 14:33:53.000000000 +0200
+@@ -3,10 +3,10 @@
+ //$default_svn_server = $GLOBALS['sys_default_domain'] ;
+ $default_svn_server = "svn." . $GLOBALS['sys_default_domain'] ;
+ //$default_svn_server = $GLOBALS['sys_scm_host'];
+-$use_ssh = false;
+-$use_dav = true;
++$use_ssh = true;
++$use_dav = false;
+ $use_ssl = true;
+-$svn_root = 'svn';
++$svn_root = 'svnroot';
+ $enabled_by_default = 0 ;
+ 
+ $svn_bin = "/usr/bin/svn";


Property changes on: trunk/gforge_base/evolvisforge/plugins.test/scmsvn/debian/patches/disable-dav.dpatch
___________________________________________________________________
Added: svn:executable
   + *

Added: trunk/gforge_base/evolvisforge/plugins.test/scmsvn/debian/postinst
===================================================================
--- trunk/gforge_base/evolvisforge/plugins.test/scmsvn/debian/postinst	                        (rev 0)
+++ trunk/gforge_base/evolvisforge/plugins.test/scmsvn/debian/postinst	2010-02-26 00:19:01 UTC (rev 4850)
@@ -0,0 +1,72 @@
+#! /bin/sh
+# postinst script for gforge-plugin-scmsvn
+#
+# see: dh_installdeb(1)
+
+set -e
+
+# summary of how this script can be called:
+#        * <postinst> `configure' <most-recently-configured-version>
+#        * <old-postinst> `abort-upgrade' <new version>
+#        * <conflictor's-postinst> `abort-remove' `in-favour' <package>
+#          <new-version>
+#        * <deconfigured's-postinst> `abort-deconfigure' `in-favour'
+#          <failed-install-package> <version> `removing'
+#          <conflicting-package> <version>
+# for details, see http://www.debian.org/doc/debian-policy/ or
+# the debian-policy package
+#
+# quoting from the policy:
+#     Any necessary prompting should almost always be confined to the
+#     post-installation script, and should be protected with a conditional
+#     so that unnecessary prompting doesn't happen if a package's
+#     installation fails and the `postinst' is called with `abort-upgrade',
+#     `abort-remove' or `abort-deconfigure'.
+
+case "$1" in
+    configure)
+	/usr/sbin/gforge-config
+
+	# Prepare database
+	su -s /bin/sh gforge -c /usr/lib/gforge/plugins/scmsvn/bin/db-upgrade.pl
+	su -s /bin/sh gforge -c '/usr/lib/gforge/bin/register-plugin scmsvn "Subversion"'
+	test -f /etc/default/apache2 && . /etc/default/apache2
+	if [ "$NO_START" != "0" ]; then
+		if [ -x /usr/sbin/apache ]; then
+			/usr/sbin/invoke-rc.d --quiet apache reload 
+		fi
+	else
+		if [ -x /usr/sbin/apache2 ]; then
+			/usr/sbin/invoke-rc.d --quiet apache2 reload
+		fi
+	fi
+
+        # Setup our Subversion
+	/usr/lib/gforge/plugins/scmsvn/bin/install-svn.sh configure
+
+	# Making user group and svn update from database 
+	/usr/lib/gforge/bin/update-user-group-cvs.sh
+	rm -f /var/lib/gforge/dumps/*svn*dump
+	su -s /bin/sh gforge -c /usr/lib/gforge/plugins/scmsvn/bin/svn_dump.pl
+	/usr/lib/gforge/plugins/scmsvn/bin/svn_update.pl
+
+    ;;
+
+    abort-upgrade|abort-remove|abort-deconfigure)
+
+    ;;
+
+    *)
+        echo "postinst called with unknown argument \`$1'" >&2
+        exit 1
+    ;;
+esac
+
+# dh_installdeb will replace this with shell code automatically
+# generated by other debhelper scripts.
+
+#DEBHELPER#
+
+exit 0
+
+

Added: trunk/gforge_base/evolvisforge/plugins.test/scmsvn/debian/prerm
===================================================================
--- trunk/gforge_base/evolvisforge/plugins.test/scmsvn/debian/prerm	                        (rev 0)
+++ trunk/gforge_base/evolvisforge/plugins.test/scmsvn/debian/prerm	2010-02-26 00:19:01 UTC (rev 4850)
@@ -0,0 +1,51 @@
+#! /bin/sh
+# prerm script for gforge-plugin-scmsvn
+#
+# see: dh_installdeb(1)
+
+set -e
+
+#DEBHELPER#
+# summary of how this script can be called:
+#        * <prerm> `remove'
+#        * <old-prerm> `upgrade' <new-version>
+#        * <new-prerm> `failed-upgrade' <old-version>
+#        * <conflictor's-prerm> `remove' `in-favour' <package> <new-version>
+#        * <deconfigured's-prerm> `deconfigure' `in-favour'
+#          <package-being-installed> <version> `removing'
+#          <conflicting-package> <version>
+# for details, see http://www.debian.org/doc/debian-policy/ or
+# the debian-policy package
+
+
+case "$1" in
+    remove|deconfigure)
+	/usr/lib/gforge/plugins/scmsvn/bin/db-delete.pl
+	/usr/lib/gforge/bin/unregister-plugin scmsvn
+	test -f /etc/default/apache2 && . /etc/default/apache2
+	if [ "$NO_START" != "0" ]; then
+		if [ -x /usr/sbin/apache ]; then
+    			/usr/sbin/invoke-rc.d --quiet apache reload
+		fi
+	else
+		if [ -x /usr/sbin/apache2 ]; then
+    			/usr/sbin/invoke-rc.d --quiet apache2 reload
+		fi
+	fi
+        ;;
+    upgrade|failed-upgrade)
+        ;;
+    *)
+        echo "prerm called with unknown argument \`$1'" >&2
+        exit 1
+    ;;
+esac
+
+# dh_installdeb will replace this with shell code automatically
+# generated by other debhelper scripts.
+
+
+
+exit 0
+
+

Added: trunk/gforge_base/evolvisforge/plugins.test/scmsvn/debian/rules
===================================================================
--- trunk/gforge_base/evolvisforge/plugins.test/scmsvn/debian/rules	                        (rev 0)
+++ trunk/gforge_base/evolvisforge/plugins.test/scmsvn/debian/rules	2010-02-26 00:19:01 UTC (rev 4850)
@@ -0,0 +1,95 @@
+#!/usr/bin/make -f
+# Sample debian/rules that uses debhelper.
+# GNU copyright 1997 to 1999 by Joey Hess.
+
+# Uncomment this to turn on verbose mode.
+#export DH_VERBOSE=1
+
+# This is the debhelper compatibility version to use.
+export DH_COMPAT=4
+
+export PLUGIN=scmsvn
+
+PACKAGE=gforge-plugin-scmsvn
+include /usr/share/dpatch/dpatch.make
+
+configure: configure-stamp
+configure-stamp:
+	dh_testdir
+	# Add here commands to configure the package.
+	touch configure-stamp
+
+build: build-stamp
+
+build-stamp: configure-stamp patch
+	dh_testdir
+	touch build-stamp
+
+clean: unpatch
+	dh_testdir
+	dh_testroot
+	rm -f build-stamp configure-stamp
+	dh_clean
+
+DESTDIR=$(CURDIR)/debian/gforge-plugin-$(PLUGIN)
+
+install: build
+	dh_testdir
+	dh_testroot
+	dh_clean -k
+	dh_installdirs
+
+	cp -r bin/* $(DESTDIR)/usr/lib/gforge/plugins/$(PLUGIN)/bin/
+#	cp -r include/* $(DESTDIR)/usr/lib/gforge/plugins/$(PLUGIN)/include/
+#	cp -r lib/* $(DESTDIR)/usr/lib/gforge/plugins/$(PLUGIN)/lib/
+	cp -r cronjobs/* $(DESTDIR)/usr/lib/gforge/plugins/$(PLUGIN)/cronjobs/
+	chmod 0755 $(DESTDIR)/usr/lib/gforge/plugins/$(PLUGIN)/cronjobs/*
+	cp cgi-bin/viewcvs.cgi $(DESTDIR)/usr/lib/gforge/bin/
+	chmod 0755 $(DESTDIR)/usr/lib/gforge/bin/viewcvs.cgi
+	cp -r etc/httpd.d $(DESTDIR)/usr/share/gforge/etc/
+	cp -r etc/plugins $(DESTDIR)/etc/gforge/
+	cp -r www/* $(DESTDIR)/usr/share/gforge/www/plugins/$(PLUGIN)/
+	find $(DESTDIR)/usr/lib/gforge/plugins/$(PLUGIN)/bin/ -type f | xargs chmod 0755
+#	find $(DESTDIR)/usr/lib/gforge/plugins/$(PLUGIN)/include/ -type f | xargs chmod 0644
+#	find $(DESTDIR)/usr/lib/gforge/plugins/$(PLUGIN)/lib/ -type f | xargs chmod 0644
+	find $(DESTDIR)/usr/share/gforge/www/plugins/$(PLUGIN)/ -type f | xargs chmod 0644
+	# clean CVS/baz dir
+	find $(DESTDIR)/ -type d -name CVS -or -name .arch-ids | xargs rm -rf
+
+
+# Build architecture-independent files here.
+binary-indep: build install
+# We have nothing to do by default.
+
+# Build architecture-dependent files here.
+binary-arch: build install
+	dh_testdir
+	dh_testroot
+#	dh_installdebconf
+	dh_installdocs
+	dh_installexamples
+	dh_installmenu
+#	dh_installlogrotate
+#	dh_installemacsen
+#	dh_installpam
+#	dh_installmime
+#	dh_installinit
+	dh_installcron
+	dh_installman
+	dh_installinfo
+#	dh_undocumented
+	dh_installchangelogs 
+	dh_link
+	dh_strip
+	dh_compress
+	dh_fixperms
+#	dh_makeshlibs
+	dh_installdeb
+#	dh_perl
+	dh_shlibdeps
+	dh_gencontrol
+	dh_md5sums
+	dh_builddeb
+
+binary: binary-indep binary-arch
+.PHONY: build clean binary-indep binary-arch binary install configure patch unpatch


Property changes on: trunk/gforge_base/evolvisforge/plugins.test/scmsvn/debian/rules
___________________________________________________________________
Added: svn:executable
   + *

Added: trunk/gforge_base/evolvisforge/plugins.test/scmsvn/etc/httpd.d/11scm60svn
===================================================================
--- trunk/gforge_base/evolvisforge/plugins.test/scmsvn/etc/httpd.d/11scm60svn	                        (rev 0)
+++ trunk/gforge_base/evolvisforge/plugins.test/scmsvn/etc/httpd.d/11scm60svn	2010-02-26 00:19:01 UTC (rev 4850)
@@ -0,0 +1,5 @@
+  # SVN begin
+  Alias /plugins/scmsvn/ /usr/share/gforge/www/plugins/scmsvn/
+  # SVN end
+
+

Added: trunk/gforge_base/evolvisforge/plugins.test/scmsvn/etc/httpd.d/12scm60svn.ssl
===================================================================
--- trunk/gforge_base/evolvisforge/plugins.test/scmsvn/etc/httpd.d/12scm60svn.ssl	                        (rev 0)
+++ trunk/gforge_base/evolvisforge/plugins.test/scmsvn/etc/httpd.d/12scm60svn.ssl	2010-02-26 00:19:01 UTC (rev 4850)
@@ -0,0 +1,3 @@
+  # SVN begin
+  Alias /plugins/scmsvn/ /usr/share/gforge/www/plugins/scmsvn/
+  # SVN end

Added: trunk/gforge_base/evolvisforge/plugins.test/scmsvn/etc/plugins/scmsvn/config.php
===================================================================
--- trunk/gforge_base/evolvisforge/plugins.test/scmsvn/etc/plugins/scmsvn/config.php	                        (rev 0)
+++ trunk/gforge_base/evolvisforge/plugins.test/scmsvn/etc/plugins/scmsvn/config.php	2010-02-26 00:19:01 UTC (rev 4850)
@@ -0,0 +1,19 @@
+<?php
+ 
+//$default_svn_server = $GLOBALS['sys_default_domain'] ;
+$default_svn_server = "svn." . $GLOBALS['sys_default_domain'] ;
+//$default_svn_server = $GLOBALS['sys_scm_host'];
+$use_ssh = false;
+$use_dav = true;
+$use_ssl = true;
+$svn_root = 'svn';
+$enabled_by_default = 0 ;
+
+$svn_bin = "/usr/bin/svn";
+
+// Local Variables:
+// mode: php
+// c-file-style: "bsd"
+// End:
+ 
+?>

Added: trunk/gforge_base/evolvisforge/plugins.test/scmsvn/etc/plugins/scmsvn/config.pl
===================================================================
--- trunk/gforge_base/evolvisforge/plugins.test/scmsvn/etc/plugins/scmsvn/config.pl	                        (rev 0)
+++ trunk/gforge_base/evolvisforge/plugins.test/scmsvn/etc/plugins/scmsvn/config.pl	2010-02-26 00:19:01 UTC (rev 4850)
@@ -0,0 +1,5 @@
+$this_server = $sys_scm_host ;
+# $this_server = $sys_default_domain ;
+# $this_server = "svn." . $sys_default_domain ;
+
+1 ;

Added: trunk/gforge_base/evolvisforge/plugins.test/scmsvn/etc/plugins/scmsvn/viewcvs/templates/annotate.ezt
===================================================================
--- trunk/gforge_base/evolvisforge/plugins.test/scmsvn/etc/plugins/scmsvn/viewcvs/templates/annotate.ezt	                        (rev 0)
+++ trunk/gforge_base/evolvisforge/plugins.test/scmsvn/etc/plugins/scmsvn/viewcvs/templates/annotate.ezt	2010-02-26 00:19:01 UTC (rev 4850)
@@ -0,0 +1,45 @@
+[# setup page definitions]
+  [define location][rootname][if-any where]: [where][end][end]
+  [define page_title][cfg.general.main_title] - annotate - [location][end]
+  [define help_href][docroot]/help_rootview.html[end]
+[# end]
+
+[include "include/header.ezt" "annotate"]
+
+<hr noshade>
+
+[define class1]vc_row_even[end]
+[define class2]vc_row_odd[end]
+[define last_rev]0[end]
+[define rowclass][class1][end]
+
+<table border="0" cellspacing="0" cellpadding="0" width="100%">
+[for lines]
+  [is lines.rev last_rev]
+  [else]
+    [is rowclass class1]
+      [define rowclass][class2][end]
+    [else]
+      [define rowclass][class1][end]
+    [end]
+  [end]
+
+  <tr class="[rowclass]">
+    <td class="vc_blame_line">[lines.line_number] :</td>
+    <td class="vc_blame_author">
+      [is lines.rev last_rev]&nbsp;[else][lines.author][end]
+    </td>
+    <td class="vc_blame_rev">
+      [is lines.rev last_rev]
+        &nbsp;
+      [else]
+        [if-any lines.diff_url]<a href="[lines.diff_url]">[end][lines.rev][if-any lines.diff_url]</a>[end]
+      [end]
+    </td>
+    <td class="vc_blame_text">[lines.text]</td>
+  </tr>
+  [define last_rev][lines.rev][end]
+[end]
+</table>
+
+[include "include/footer.ezt"]

Added: trunk/gforge_base/evolvisforge/plugins.test/scmsvn/etc/plugins/scmsvn/viewcvs/templates/diff.ezt
===================================================================
--- trunk/gforge_base/evolvisforge/plugins.test/scmsvn/etc/plugins/scmsvn/viewcvs/templates/diff.ezt	                        (rev 0)
+++ trunk/gforge_base/evolvisforge/plugins.test/scmsvn/etc/plugins/scmsvn/viewcvs/templates/diff.ezt	2010-02-26 00:19:01 UTC (rev 4850)
@@ -0,0 +1,166 @@
+[# setup page definitions]
+  [define location][rootname][if-any where]: [where][end][end]
+  [define page_title][cfg.general.main_title] - diff - [location][end]
+  [define help_href][docroot]/help_rootview.html[end]
+[# end]
+
+[include "include/header.ezt" "diff"]
+
+<h3 align=center>Diff for /[where] between version [rev1] and [rev2]</h3>
+
+[if-any raw_diff]
+  <pre class="vc_raw_diff">[raw_diff]</pre>
+[else]
+<table border=0 cellspacing=0 cellpadding=0 width="100%">
+  <tr class="vc_diff_header">
+    <th width="50%" valign=top>
+      version [rev1], [date1]
+      [if-any tag1]<br>Tag: [tag1][end]
+    </th>
+    <th width="50%" valign=top>
+      version [rev2], [date2]
+      [if-any tag2]<br>Tag: [tag2][end]
+    </th>
+  </tr>
+
+  [for changes]
+    [is changes.type "header"]
+      <tr class="vc_diff_chunk_header">
+        <td width="50%">
+          <table width="100%" border=1 cellpadding=5>
+            <tr>
+              <td> <b>Line [changes.line1]</b>&nbsp;
+              <span class="vc_diff_chunk_extra">[changes.extra]</span></td>
+            </tr>
+          </table>
+        </td>
+       <td width="50%">
+          <table width="100%" border=1 cellpadding=5>
+            <tr>
+              <td> <b>Line [changes.line2]</b>&nbsp;
+              <span class="vc_diff_chunk_extra">[changes.extra]</span></td>
+            </tr>
+          </table>
+        </td>
+      </tr>
+    [else]
+      [is changes.type "add"]
+        <tr>
+          <td class="vc_diff_empty">&nbsp;</td>
+          <td class="vc_diff_add">&nbsp;[changes.right]</td>
+        </tr>
+      [else]
+        [is changes.type "remove"]
+          <tr>
+            <td class="vc_diff_remove">&nbsp;[changes.left]</td>
+            <td class="vc_diff_empty">&nbsp;</td>
+          </tr>
+        [else]
+          [is changes.type "change"]
+            <tr>
+              [if-any changes.have_left]
+                <td class="vc_diff_change">&nbsp;[changes.left]</td>
+              [else]
+                <td class="vc_diff_change_empty">&nbsp;</td>
+              [end]
+              [if-any changes.have_right]
+                <td class="vc_diff_change">&nbsp;[changes.right]</td>
+              [else]
+                <td class="vc_diff_change_empty">&nbsp;</td>
+              [end]
+            </tr>
+          [else]
+            [is changes.type "no-changes"]
+              <tr>
+                <td colspan=2>&nbsp;</td>
+              </tr>
+              <tr class="vc_diff_empty">
+                <td colspan=2 align=center><br>
+                <b>- No changes -</b><br>&nbsp; </td>
+              </tr>
+            [else]
+              [is changes.type "binary-diff"]
+                <tr>
+                  <td colspan=2>&nbsp;</td>
+                </tr>
+                <tr class="vc_diff_empty">
+                  <td colspan=2 align=center><br>
+                  <b>- Binary file revisions differ -</b><br>&nbsp; </td>
+                </tr>
+              [else]
+                [is changes.type "error"]
+                  <tr>
+                    <td colspan=2>&nbsp;</td>
+                  </tr>
+                  <tr class="vc_diff_empty">
+                    <td colspan=2 align=center> <br>
+                    <b>- ViewCVS depends on rcsdiff and GNU diff to create 
+                    this page.  ViewCVS cannot find GNU diff. Even if you 
+                    have GNU diff installed, the rcsdiff program must be 
+                    configured and compiled with the GNU diff location.
+                    -</b> <br>&nbsp; </td>
+                  </tr>
+                [else]
+                  <tr>
+                    <td class="vc_diff_nochange">&nbsp;[changes.left]</td>
+                    <td class="vc_diff_nochange">&nbsp;[changes.right]</td>
+                  </tr>
+                [end]
+              [end]
+            [end]
+          [end]
+        [end]
+      [end]
+    [end]
+  [end]
+</table>
+[end]
+
+<br><hr noshade width="100%">
+
+<table border=0 cellpadding=10>
+  <tr>
+    <td>
+      <form method=get action="[diff_format_action]">
+        [diff_format_hidden_values]
+        <input type=checkbox name="makepatch" value="1"> 
+        Generate output suitable for use with a patch program<br>
+        <select name="diff_format" onchange="submit()">
+          <option value="h" [is diff_format "h"]selected[end]>Colored Diff</option>
+          <option value="l" [is diff_format "l"]selected[end]>Long Colored Diff</option>
+          <option value="u" [is diff_format "u"]selected[end]>Unidiff</option>
+          <option value="c" [is diff_format "c"]selected[end]>Context Diff</option>
+          <option value="s" [is diff_format "s"]selected[end]>Side by Side</option>
+        </select>
+        <input type=submit value="Show">
+      </form>
+    </td>
+    <td>
+[if-any raw_diff]
+      &nbsp;
+[else]
+      <table border=1>
+        <tr>
+          <td>Legend:<br>
+            <table border=0 cellspacing=0 cellpadding=1>
+              <tr>
+                <td align=center class="vc_diff_remove">Removed from v.[rev1]</td>
+                <td class="vc_diff_empty">&nbsp;</td>
+              </tr>
+              <tr>
+                <td align=center colspan=2 class="vc_diff_change">changed lines</td>
+              </tr>
+              <tr>
+                <td class="vc_diff_empty">&nbsp;</td>
+                <td align=center class="vc_diff_add">Added in v.[rev2]</td>
+              </tr>
+            </table>
+          </td>
+        </tr>
+      </table>
+[end]
+    </td>
+  </tr>
+</table>
+
+[include "include/footer.ezt"]

Added: trunk/gforge_base/evolvisforge/plugins.test/scmsvn/etc/plugins/scmsvn/viewcvs/templates/dir_alternate.ezt
===================================================================
--- trunk/gforge_base/evolvisforge/plugins.test/scmsvn/etc/plugins/scmsvn/viewcvs/templates/dir_alternate.ezt	                        (rev 0)
+++ trunk/gforge_base/evolvisforge/plugins.test/scmsvn/etc/plugins/scmsvn/viewcvs/templates/dir_alternate.ezt	2010-02-26 00:19:01 UTC (rev 4850)
@@ -0,0 +1,152 @@
+[include "include/dir_header.ezt"]
+
+<table width="100%" border=0 cellspacing=1 cellpadding=2>
+<thead>
+<tr>
+  <th class="vc_header[is sortby "rev"]_sort[end]">
+    <a href="[sortby_rev_href]#dirlist">Rev.</a>
+    [is sortby "rev"]
+      <img class="vc_sortarrow" alt="[is sortdir "down"](rev)[end]"
+        width="13" height="13"
+        src="[docroot]/images/[is sortdir "up"]down[else]up[end].png" />
+    [end]
+  </th>
+  <th class="vc_header[is sortby "file"]_sort[end]"
+    [is cfg.options.use_cvsgraph "1"]colspan=2[end]>
+    <a href="[sortby_file_href]#dirlist">File</a>
+    [is sortby "file"]
+      <img class="vc_sortarrow" alt="[is sortdir "down"](rev)[end]"
+        width="13" height="13"
+        src="[docroot]/images/[is sortdir "up"]down[else]up[end].png" />
+    [end]
+  </th>
+  <th class="vc_header[is sortby "date"]_sort[end]">
+    <a href="[sortby_date_href]#dirlist">Age</a>
+    [is sortby "date"]
+      <img class="vc_sortarrow" alt="[is sortdir "down"](rev)[end]"
+        width="13" height="13"
+        src="[docroot]/images/[is sortdir "up"]down[else]up[end].png" />
+    [end]
+  </th>
+  <th class="vc_header[is sortby "author"]_sort[end]">
+    <a href="[sortby_author_href]#dirlist">Author</a>
+    [is sortby "author"]
+      <img class="vc_sortarrow" alt="[is sortdir "down"](rev)[end]"
+        width="13" height="13"
+        src="[docroot]/images/[is sortdir "up"]down[else]up[end].png" />
+    [end]
+  </th>
+[is cfg.options.show_logs "1"]
+  <th class="vc_header[is sortby "log"]_sort[end]">
+    <a href="[sortby_log_href]#dirlist">Last log entry</a>
+    [is sortby "log"]
+      <img class="vc_sortarrow" alt="[is sortdir "down"](rev)[end]"
+        width="13" height="13"
+        src="[docroot]/images/[is sortdir "up"]down[else]up[end].png" />
+    [end]
+  </th>
+[end]
+</tr>
+</thead>
+
+<tbody>
+[for rows]
+  <tr class="vc_row_[if-index rows even]even[else]odd[end]">
+  [is rows.type "unreadable"]
+    <td>&nbsp;</td> [# revision ]
+    <td [is cfg.options.use_cvsgraph "1"]colspan=2[end]>
+      <a name="[rows.anchor]">[rows.name]</a>
+    </td>
+    <td colspan=[is cfg.options.show_logs "1"]3[else]2[end]>
+       <i>This entry is unreadable</i>
+    </td>
+  [else]
+    [is rows.type "dir"]
+      [is rows.state "error"]
+        <td>&nbsp;</td> [# revision ]
+      [else]
+        <td>&nbsp;[is roottype "svn"]<a href="[rows.rev_href]"><b>[rows.rev]</b></a>[end]</td>
+      [end]
+      <td [is cfg.options.use_cvsgraph "1"]colspan=2[end]>
+        <a name="[rows.anchor]" href="[rows.href]">
+        <img src="[icons]/small/dir.gif" alt="(dir)" border=0 width=16 height=16>
+        [rows.name]/</a>
+        [is roottype "cvs"]
+          [is rows.name "Attic"]
+            &nbsp; <a href="[show_attic_href]#dirlist">[[]show contents]</a>
+          [end]
+        [end]
+      </td>
+      [is rows.state "error"]
+        <td colspan=[is cfg.options.show_logs "1"]3[else]2[end]>
+          <i>Last modification unavailable - could not read CVS information</i>
+        </td>
+      [else]
+        [is rows.state "none"]
+          <td>&nbsp;</td> [# age ]
+          <td>&nbsp;</td> [# author ]
+          [is cfg.options.show_logs "1"]<td>&nbsp;</td> [# log ][end]
+        [else]
+          <td>&nbsp;[rows.time]</td>
+          [if-any rows.author]
+            <td>&nbsp;[rows.author]</td>
+          [end]
+          [is cfg.options.show_logs "1"]
+            [if-any rows.show_log]
+              <td>&nbsp;[rows.log][is roottype "cvs"] 
+                <i>(from [rows.log_file]/[rows.log_rev])</i>[end]</td>
+            [else]
+              <td>&nbsp;</td>
+            [end]
+          [end]
+        [end]
+      [end]
+          
+    [else]
+      [is rows.state "error"]
+        <td>&nbsp;</td>
+        <td [is cfg.options.use_cvsgraph "1"]colspan=2[end]>
+          <a name="[rows.anchor]">[rows.name]</a>
+        </td>
+        <td colspan=[is cfg.options.show_logs "1"]3[else]2[end]>
+         <i>CVS information is unreadable</i>
+        </td>
+      [else]
+        <td>&nbsp;<a href="[rows.href]"><b>[rows.rev]</b></a></td>
+        <td><a name="[rows.anchor]" href="[rows.rev_href]">
+            <img src="[icons]/small/text.gif" alt="(file)" border=0
+                 width=16 height=16>
+            [rows.name]
+            </a>
+            [is rows.state "dead"]
+              [# don't let this phrase/link be wrapped ]
+              [if-any view_tag](not&nbsp;exist)[else](in&nbsp;the&nbsp;Attic)[end][if-any attic_showing]&nbsp;<a href="[hide_attic_href]#dirlist">[[]hide][end]</a>
+            [end]
+        </td>
+        [is cfg.options.use_cvsgraph "1"]
+          [if-any rows.graph_href]
+            <td width="1%"><a href="[rows.graph_href]"><img
+              src="[docroot]/images/cvsgraph_16x16.png"
+              alt="(graph)" width=16 height=16 border=0>
+            </a></td>
+          [else]
+            <td>&nbsp;</td>
+          [end]
+        [end]
+        <td>&nbsp;[rows.time]</td>
+        [if-any rows.author]
+          <td>&nbsp;[rows.author]</td>
+        [end]
+        [is cfg.options.show_logs "1"]
+          <td>&nbsp;[if-any rows.show_log][rows.log][end]</td>
+        [end]
+      [end]
+    [end]
+  [end]
+  </tr>
+[end]
+</tbody>
+
+</table>
+
+[include "include/dir_footer.ezt"]

Added: trunk/gforge_base/evolvisforge/plugins.test/scmsvn/etc/plugins/scmsvn/viewcvs/templates/directory.ezt
===================================================================
--- trunk/gforge_base/evolvisforge/plugins.test/scmsvn/etc/plugins/scmsvn/viewcvs/templates/directory.ezt	                        (rev 0)
+++ trunk/gforge_base/evolvisforge/plugins.test/scmsvn/etc/plugins/scmsvn/viewcvs/templates/directory.ezt	2010-02-26 00:19:01 UTC (rev 4850)
@@ -0,0 +1,146 @@
+[include "include/dir_header.ezt"]
+
+<table width="100%" border=0 cellspacing=1 cellpadding=2>
+<thead>
+<tr>
+  <th class="vc_header[is sortby "file"]_sort[end]"
+    [is cfg.options.use_cvsgraph "1"]colspan=2[end]>
+    <a href="[sortby_file_href]#dirlist">File</a>
+    [is sortby "file"]
+      <img class="vc_sortarrow" alt="[is sortdir "down"](rev)[end]"
+        width="13" height="13"
+        src="[docroot]/images/[is sortdir "up"]down[else]up[end].png" />
+    [end]
+  </th>
+  <th class="vc_header[is sortby "rev"]_sort[end]">
+    <a href="[sortby_rev_href]#dirlist">Rev.</a>
+    [is sortby "rev"]
+      <img class="vc_sortarrow" alt="[is sortdir "down"](rev)[end]"
+        width="13" height="13"
+        src="[docroot]/images/[is sortdir "up"]down[else]up[end].png" />
+    [end]
+  </th>
+  <th class="vc_header[is sortby "date"]_sort[end]">
+    <a href="[sortby_date_href]#dirlist">Age</a>
+    [is sortby "date"]
+      <img class="vc_sortarrow" alt="[is sortdir "down"](rev)[end]"
+        width="13" height="13"
+        src="[docroot]/images/[is sortdir "up"]down[else]up[end].png" />
+    [end]
+  </th>
+  <th class="vc_header[is sortby "author"]_sort[end]">
+    <a href="[sortby_author_href]#dirlist">Author</a>
+    [is sortby "author"]
+      <img class="vc_sortarrow" alt="[is sortdir "down"](rev)[end]"
+        width="13" height="13"
+        src="[docroot]/images/[is sortdir "up"]down[else]up[end].png" />
+    [end]
+  </th>
+[is cfg.options.show_logs "1"]
+  <th class="vc_header[is sortby "log"]_sort[end]">
+    <a href="[sortby_log_href]#dirlist">Last log entry</a>
+    [is sortby "log"]
+      <img class="vc_sortarrow" alt="[is sortdir "down"](rev)[end]"
+        width="13" height="13"
+        src="[docroot]/images/[is sortdir "up"]down[else]up[end].png" />
+    [end]
+  </th>
+[end]
+</tr>
+</thead>
+
+<tbody>
+[for rows]
+  <tr class="vc_row_[if-index rows even]even[else]odd[end]">
+  [is rows.type "unreadable"]
+    <td [is cfg.options.use_cvsgraph "1"]colspan=2[end]>
+      <a name="[rows.anchor]">[rows.name]</a>
+    </td>
+    <td colspan=[is cfg.options.show_logs "1"]4[else]3[end]>
+       <i>This entry is unreadable</i>
+    </td>
+  [else]
+    [is rows.type "dir"]
+      <td [is cfg.options.use_cvsgraph "1"]colspan=2[end]>
+        <a name="[rows.anchor]" href="[rows.href]">
+        <img src="[icons]/small/dir.gif" alt="(dir)" border=0 width=16 height=16>
+        [rows.name]/</a>
+        [is roottype "cvs"]
+          [is rows.name "Attic"]
+            &nbsp; <a href="[show_attic_href]#dirlist">[[]show contents]</a>
+          [end]
+        [end]
+      </td>
+      [is rows.state "error"]
+        <td colspan=[is cfg.options.show_logs "1"]4[else]3[end]>
+          <i>Last modification unavailable - could not read CVS information</i>
+        </td>
+      [else]
+        <td>&nbsp;[is roottype "svn"]<a href="[rows.rev_href]"><b>[rows.rev]</b></a>[end]</td>
+        [is rows.state "none"]
+          <td>&nbsp;</td> [# age ]
+          <td>&nbsp;</td> [# author ]
+          [is cfg.options.show_logs "1"]<td>&nbsp;</td> [# log ][end]
+        [else]
+          <td>&nbsp;[rows.time]</td>
+          [if-any rows.author]
+            <td>&nbsp;[rows.author]</td>
+          [end]
+          [is cfg.options.show_logs "1"]
+            [if-any rows.show_log]
+              <td>&nbsp;[rows.log][is roottype "cvs"] 
+                <i>(from [rows.log_file]/[rows.log_rev])</i>[end]</td>
+            [else]
+              <td>&nbsp;</td>
+            [end]
+          [end]
+        [end]
+      [end]
+          
+    [else]
+      [is rows.state "error"]
+        <td [is cfg.options.use_cvsgraph "1"]colspan=2[end]>
+          <a name="[rows.anchor]">[rows.name]</a>
+        </td>
+        <td colspan=[is cfg.options.show_logs "1"]4[else]3[end]>
+         <i>CVS information is unreadable</i>
+        </td>
+      [else]
+        <td><a name="[rows.anchor]" href="[rows.href]">
+            <img src="[icons]/small/text.gif" alt="(file)" border=0
+                 width=16 height=16>
+            [rows.name]
+            </a>
+            [is rows.state "dead"]
+              [# don't let this phrase/link be wrapped ]
+              [if-any view_tag](not&nbsp;exist)[else](in&nbsp;the&nbsp;Attic)[end][if-any attic_showing]&nbsp;<a href="[hide_attic_href]#dirlist">[[]hide][end]</a>
+            [end]
+        </td>
+        [is cfg.options.use_cvsgraph "1"]
+          [if-any rows.graph_href]
+            <td width="1%"><a href="[rows.graph_href]"><img
+              src="[docroot]/images/cvsgraph_16x16.png"
+              alt="(graph)" width=16 height=16 border=0>
+            </a></td>
+          [else]
+            <td>&nbsp;</td>
+          [end]
+        [end]
+        <td>&nbsp;<a href="[rows.rev_href]"><b>[rows.rev]</b></a></td>
+        <td>&nbsp;[rows.time]</td>
+        [if-any rows.author]
+          <td>&nbsp;[rows.author]</td>
+        [end]
+        [is cfg.options.show_logs "1"]
+          <td>&nbsp;[if-any rows.show_log][rows.log][end]</td>
+        [end]
+      [end]
+    [end]
+  [end]
+  </tr>
+[end]
+</tbody>
+
+</table>
+
+[include "include/dir_footer.ezt"]

Added: trunk/gforge_base/evolvisforge/plugins.test/scmsvn/etc/plugins/scmsvn/viewcvs/templates/error.ezt
===================================================================
--- trunk/gforge_base/evolvisforge/plugins.test/scmsvn/etc/plugins/scmsvn/viewcvs/templates/error.ezt	                        (rev 0)
+++ trunk/gforge_base/evolvisforge/plugins.test/scmsvn/etc/plugins/scmsvn/viewcvs/templates/error.ezt	2010-02-26 00:19:01 UTC (rev 4850)
@@ -0,0 +1,14 @@
+<h3>An Exception Has Occurred</h3>
+
+[if-any msg]
+  <p><pre>[msg]</pre></p>
+[end]
+[if-any status]
+  <h4>HTTP Response Status</h4>
+  <p><pre>[status]</pre></p>
+  <hr />
+[end]
+<h4>Python Traceback</h4>
+<p><pre>
+[stacktrace]
+</pre></p>

Added: trunk/gforge_base/evolvisforge/plugins.test/scmsvn/etc/plugins/scmsvn/viewcvs/templates/graph.ezt
===================================================================
--- trunk/gforge_base/evolvisforge/plugins.test/scmsvn/etc/plugins/scmsvn/viewcvs/templates/graph.ezt	                        (rev 0)
+++ trunk/gforge_base/evolvisforge/plugins.test/scmsvn/etc/plugins/scmsvn/viewcvs/templates/graph.ezt	2010-02-26 00:19:01 UTC (rev 4850)
@@ -0,0 +1,18 @@
+[# setup page definitions]
+  [define location][rootname][if-any where]: [where][end][end]
+  [define page_title][cfg.general.main_title] - graph - [location][end]
+  [define help_href][docroot]/help_rootview.html[end]
+[# end]
+
+[include "include/header.ezt" "graph"]
+
+<center>
+<h1>Revision graph of [path]</h1>
+
+[imagemap]
+<img border="0" usemap="#MyMapName"
+  src="[imagesrc]" 
+  alt="Revisions of [path]">
+</center>
+
+[include "include/footer.ezt"]

Added: trunk/gforge_base/evolvisforge/plugins.test/scmsvn/etc/plugins/scmsvn/viewcvs/templates/include/branch.ezt
===================================================================
--- trunk/gforge_base/evolvisforge/plugins.test/scmsvn/etc/plugins/scmsvn/viewcvs/templates/include/branch.ezt	                        (rev 0)
+++ trunk/gforge_base/evolvisforge/plugins.test/scmsvn/etc/plugins/scmsvn/viewcvs/templates/include/branch.ezt	2010-02-26 00:19:01 UTC (rev 4850)
@@ -0,0 +1,12 @@
+[if-any branch]
+  Default branch: [branch]
+  <br>
+  Bookmark a link to HEAD:
+  (<a href="[view_href]">view</a>)
+  (<a href="[download_href]">download</a>)
+  [if-any download_text_href](<a href="[download_text_href]">as text</a>)[end]
+[else]
+  No default branch
+[end]
+<br>
+

Added: trunk/gforge_base/evolvisforge/plugins.test/scmsvn/etc/plugins/scmsvn/viewcvs/templates/include/branch_form.ezt
===================================================================
--- trunk/gforge_base/evolvisforge/plugins.test/scmsvn/etc/plugins/scmsvn/viewcvs/templates/include/branch_form.ezt	                        (rev 0)
+++ trunk/gforge_base/evolvisforge/plugins.test/scmsvn/etc/plugins/scmsvn/viewcvs/templates/include/branch_form.ezt	2010-02-26 00:19:01 UTC (rev 4850)
@@ -0,0 +1,19 @@
+[if-any branch_names]
+  <hr noshade>
+  <a name=branch></a>
+  <form method=GET action="[branch_select_action]">
+    [branch_select_hidden_values]
+    View only Branch:
+    [if-any current_root]
+    <input type="hidden" name="root" value="[current_root]">
+    [end]
+    <select name="only_with_tag" onchange="submit()">
+      <option value="" [is view_tag ""]selected[end]>Show all branches</option>
+      [for branch_names]
+        <option value="[branch_names]" [is branch_names view_tag]selected[end]>[branch_names]</option>
+      [end]
+    </select>
+    <input type=submit value="  View Branch  ">
+  </form>
+[end]
+

Added: trunk/gforge_base/evolvisforge/plugins.test/scmsvn/etc/plugins/scmsvn/viewcvs/templates/include/diff_form.ezt
===================================================================
--- trunk/gforge_base/evolvisforge/plugins.test/scmsvn/etc/plugins/scmsvn/viewcvs/templates/include/diff_form.ezt	                        (rev 0)
+++ trunk/gforge_base/evolvisforge/plugins.test/scmsvn/etc/plugins/scmsvn/viewcvs/templates/include/diff_form.ezt	2010-02-26 00:19:01 UTC (rev 4850)
@@ -0,0 +1,62 @@
+<a name="diff"></a>
+  <hr noshade>
+  This form allows you to request diffs between any two revisions of
+  a file. You may select a symbolic revision name using the selection
+  box or you may type in a numeric name using the type-in text box.
+  <p>
+  <form method="get" action="[diff_select_action]" name="diff_select">
+  [diff_select_hidden_values]
+
+  <table border="0" cellpadding="2" cellspacing="0">
+  <tr>
+  <td>&nbsp;</td>
+  <td>
+  Diffs between
+[if-any tags]
+  <select name="r1">
+    <option value="text" selected>Use Text Field</option>
+  [for tags]
+    <option value="[tags.rev]:[tags.name]">[tags.name]</option>
+  [end]
+  </select>
+[else]
+  <input type="hidden" name="r1" value="text" />
+[end]
+  <input type="TEXT" size="12" name="tr1" value="[tr1]"
+        [if-any tags]onChange="document.diff_select.r1.selectedIndex=0"[end]>
+
+  and
+[if-any tags]
+  <select name="r2">
+    <option value="text" selected>Use Text Field</option>
+  [for tags]
+    <option value="[tags.rev]:[tags.name]">[tags.name]</option>
+  [end]
+  </select>
+[else]
+  <input type="hidden" name="r2" value="text" />
+[end]
+  <input type="TEXT" size="12" name="tr2" value="[tr2]"
+        [if-any tags]onChange="document.diff_select.r1.selectedIndex=0"[end]>
+  </td>
+  </tr>
+  <tr>
+  <td><input type="checkbox" name="makepatch" id="makepatch" value="1"></td>
+  <td><label for="makepatch">Generate output suitable for use with a patch
+  program</label></td>
+  </tr>
+  <tr>
+  <td>&nbsp;</td>
+  <td>
+  Type of Diff should be a
+  <select name="diff_format" onchange="submit()">
+    <option value="h" [is diff_format "h"]selected[end]>Colored Diff</option>
+    <option value="l" [is diff_format "l"]selected[end]>Long Colored Diff</option>
+    <option value="u" [is diff_format "u"]selected[end]>Unidiff</option>
+    <option value="c" [is diff_format "c"]selected[end]>Context Diff</option>
+    <option value="s" [is diff_format "s"]selected[end]>Side by Side</option>
+  </select>
+  <input type="submit" value="  Get Diffs  "></form>
+  </td>
+  </tr>
+  </table>

Added: trunk/gforge_base/evolvisforge/plugins.test/scmsvn/etc/plugins/scmsvn/viewcvs/templates/include/dir_footer.ezt
===================================================================
--- trunk/gforge_base/evolvisforge/plugins.test/scmsvn/etc/plugins/scmsvn/viewcvs/templates/include/dir_footer.ezt	                        (rev 0)
+++ trunk/gforge_base/evolvisforge/plugins.test/scmsvn/etc/plugins/scmsvn/viewcvs/templates/include/dir_footer.ezt	2010-02-26 00:19:01 UTC (rev 4850)
@@ -0,0 +1,94 @@
+[if-any no_match]
+  <p><b>NOTE:</b> There are [num_files] files, but none match the
+  current selection criteria.
+[end]
+
+[if-any unreadable]
+  <hr size=1 noshade>
+  <b>NOTE:</b> One or more files were unreadable. The files in the CVS
+  repository should be readable by the web server process. Please
+  report this condition to the administrator of this CVS repository.
+[end]
+
+[if-any selection_form]
+  <hr size=1 noshade>
+  <form method=get action="[search_tag_action]">
+    [search_tag_hidden_values]
+    [# this table holds the selectors on the left, and reset on the right ]
+    <table>
+      [if-any has_tags]
+        <tr>
+          <td> Show files using tag: </td>
+          <td>
+            <select name=only_with_tag onchange="submit()">
+            <option value="">Select Branch</option>
+            [if-any branch_tags]
+              <optgroup label="Branches">
+              [for branch_tags]
+                [is branch_tags view_tag]
+                  <option selected>[branch_tags]</option>
+                [else]
+                  <option>[branch_tags]</option>
+                [end]
+              [end]
+              </optgroup>
+            [end]
+            <optgroup label="Non-branch tags">
+            [for plain_tags]
+              [is plain_tags view_tag]
+                <option selected>[plain_tags]</option>
+              [else]
+                <option>[plain_tags]</option>
+              [end]
+            [end]
+            </optgroup>
+            </select>
+          </td>
+          <td> &nbsp; </td>
+        </tr>
+      [end]
+
+      [is num_files "0"]
+      [else]
+        [is cfg.options.use_re_search "1"]
+          <tr>
+            <td>Show files containing the regular expression:</td>
+            <td><input type="text" name="search" value="[search_re]"></td>
+            <td> &nbsp; </td>
+          </tr>
+        [end]
+
+        <tr>
+          <td> &nbsp; </td>
+          <td> <input type="submit" value="Show"> </td>
+      [end]
+  [# I don't like closing the form here, but I thought this is better than 
+     having forms inside forms ]
+  </form>
+      [if-any view_tag]
+        <td valign=bottom>
+          <form method=get action="[search_tag_action]">
+            [search_tag_hidden_values]
+            <input type="submit" value="Show all files">
+          </form>
+        </td>
+      [else]
+        [if-any search_re]
+          <td valign=bottom>
+            <form method=get action="[search_tag_action]">
+              [search_tag_hidden_values]
+              <input type="submit" value="Show all files">
+            </form>
+          </td>
+        [end]
+      [end]
+    </tr>
+  </table>
+[end]
+
+[# if you want to disable tarball generation remove the following: ]
+[if-any tarball_href]
+  <p><a href="[tarball_href]">Download tarball</a></p>
+[end]
+
+[include "footer.ezt"]

Added: trunk/gforge_base/evolvisforge/plugins.test/scmsvn/etc/plugins/scmsvn/viewcvs/templates/include/dir_header.ezt
===================================================================
--- trunk/gforge_base/evolvisforge/plugins.test/scmsvn/etc/plugins/scmsvn/viewcvs/templates/include/dir_header.ezt	                        (rev 0)
+++ trunk/gforge_base/evolvisforge/plugins.test/scmsvn/etc/plugins/scmsvn/viewcvs/templates/include/dir_header.ezt	2010-02-26 00:19:01 UTC (rev 4850)
@@ -0,0 +1,68 @@
+[# setup page definitions]
+  [define location][rootname][if-any where]: [where][end][end]
+  [define page_title][cfg.general.main_title] - directory - [location][end]
+  [define help_href][docroot]/help_[if-any where]dir[else]root[end]view.html[end]
+[# end]
+
+[include "header.ezt" "directory"]
+
+[if-any where][else]
+  <!-- you may insert repository access instructions here -->
+
+[end]
+
+<table>
+<tr><td>Current directory:</td><td><b>[nav_path]</b></td></tr>
+
+[is roottype "svn"]
+<tr>
+  <td>Current revision:</td>
+  <td><a href="[tree_rev_href]">[tree_rev]</a></td>
+</tr>
+<tr>
+  <td>Jump to directory revision:</td>
+  <td>
+    <form method=get action="[jump_rev_action]">
+    [jump_rev_hidden_values]
+    <input type="text" name="rev" value="[jump_rev]">
+    <input type=submit value="Go">
+    </form>
+  </td>
+</tr>
+[end]
+[if-any view_tag]
+<tr><td>Current tag:</td><td><b>[view_tag]</b></td></tr>
+[end]
+[if-any search_re]
+<tr><td>Current search:</td><td><b>[search_re]</b></td></tr>
+[end]
+[if-any num_files]
+<tr><td>Files shown:</td><td><b>[files_shown]</b></td></tr>
+[end]
+[if-any queryform_href]
+<tr>
+  <td>Query:</td>
+  <td><a href="[queryform_href]">Query revision history</a></td>
+</tr>
+[end]
+</table>
+  [is cfg.options.use_pagesize "0"]
+  [else]
+    [is picklist_len "1"]
+    [else]
+      <form method=get action="[dir_paging_action]">
+        [dir_paging_hidden_values]
+        <input type=submit value="Go to:">
+        <select name=dir_pagestart  onchange="submit()">
+          [for picklist]
+            <option [is picklist.count dir_pagestart]selected[end] value="[picklist.count]">Page [picklist.page]: [picklist.start] to [picklist.end]</option>
+          [end]
+        </select>
+      </form>
+    [end]
+  [end]
+
+<p><a name="dirlist"></a></p>
+
+<hr noshade>
+

Added: trunk/gforge_base/evolvisforge/plugins.test/scmsvn/etc/plugins/scmsvn/viewcvs/templates/include/footer.ezt
===================================================================
--- trunk/gforge_base/evolvisforge/plugins.test/scmsvn/etc/plugins/scmsvn/viewcvs/templates/include/footer.ezt	                        (rev 0)
+++ trunk/gforge_base/evolvisforge/plugins.test/scmsvn/etc/plugins/scmsvn/viewcvs/templates/include/footer.ezt	2010-02-26 00:19:01 UTC (rev 4850)
@@ -0,0 +1,21 @@
+[# standard footer used by all ViewCVS pages ]
+
+<hr noshade>
+
+<table width="100%" border="0" cellpadding="0" cellspacing="0">
+<tr>
+  <td align="left">
+    <address>[cfg.general.address]</address><br />
+    Powered by <a href="http://viewcvs.sourceforge.net/">ViewCVS [vsn]</a>
+  </td>
+  <td align="right">
+    <img src="/doc/viewcvs/images/logo.png" alt="(Powered by ViewCVS)" border="0" 
+              width="128" height="48" /><br />
+    <h3><a target="_blank" href="[help_href]">ViewCVS and CVS/SVN Help</a></h3>
+  </td>
+</tr>
+</table>
+<!--
+</body>
+</html>
+-->
\ No newline at end of file

Added: trunk/gforge_base/evolvisforge/plugins.test/scmsvn/etc/plugins/scmsvn/viewcvs/templates/include/header.ezt
===================================================================
--- trunk/gforge_base/evolvisforge/plugins.test/scmsvn/etc/plugins/scmsvn/viewcvs/templates/include/header.ezt	                        (rev 0)
+++ trunk/gforge_base/evolvisforge/plugins.test/scmsvn/etc/plugins/scmsvn/viewcvs/templates/include/header.ezt	2010-02-26 00:19:01 UTC (rev 4850)
@@ -0,0 +1 @@
+<h1>[location]</h1>

Added: trunk/gforge_base/evolvisforge/plugins.test/scmsvn/etc/plugins/scmsvn/viewcvs/templates/include/paging.ezt
===================================================================
--- trunk/gforge_base/evolvisforge/plugins.test/scmsvn/etc/plugins/scmsvn/viewcvs/templates/include/paging.ezt	                        (rev 0)
+++ trunk/gforge_base/evolvisforge/plugins.test/scmsvn/etc/plugins/scmsvn/viewcvs/templates/include/paging.ezt	2010-02-26 00:19:01 UTC (rev 4850)
@@ -0,0 +1,18 @@
+  [is cfg.options.use_pagesize "0"]
+  [else]
+    [is picklist_len "1"]
+    [else]
+      <hr noshade>
+      <form method=GET action="[log_paging_action]">
+        [log_paging_hidden_values]
+        <input type=submit value="Go to:">
+        <select name=log_pagestart  onchange="submit()">
+          [for picklist]
+            <option [is picklist.count log_pagestart]selected[end] value="[picklist.count]">Page [picklist.page]: [picklist.start] - [picklist.end]</option>
+          [end]
+        </select>
+      </form>
+    [end]
+  [end]
+
+

Added: trunk/gforge_base/evolvisforge/plugins.test/scmsvn/etc/plugins/scmsvn/viewcvs/templates/include/sort.ezt
===================================================================
--- trunk/gforge_base/evolvisforge/plugins.test/scmsvn/etc/plugins/scmsvn/viewcvs/templates/include/sort.ezt	                        (rev 0)
+++ trunk/gforge_base/evolvisforge/plugins.test/scmsvn/etc/plugins/scmsvn/viewcvs/templates/include/sort.ezt	2010-02-26 00:19:01 UTC (rev 4850)
@@ -0,0 +1,13 @@
+<hr noshade>
+<a name=logsort></a>
+<form method=get action="[logsort_action]">
+  [logsort_hidden_values]
+  Sort log by:
+  <select name="logsort" onchange="submit()">
+    <option value="cvs" [is logsort "cvs"]selected[end]>Not sorted</option>
+    <option value="date" [is logsort "date"]selected[end]>Commit date</option>
+    <option value="rev" [is logsort "rev"]selected[end]>Revision</option>
+  </select>
+  <input type=submit value="  Sort  ">
+</form>
+

Added: trunk/gforge_base/evolvisforge/plugins.test/scmsvn/etc/plugins/scmsvn/viewcvs/templates/include/view_tag.ezt
===================================================================
--- trunk/gforge_base/evolvisforge/plugins.test/scmsvn/etc/plugins/scmsvn/viewcvs/templates/include/view_tag.ezt	                        (rev 0)
+++ trunk/gforge_base/evolvisforge/plugins.test/scmsvn/etc/plugins/scmsvn/viewcvs/templates/include/view_tag.ezt	2010-02-26 00:19:01 UTC (rev 4850)
@@ -0,0 +1,5 @@
+[if-any view_tag]
+  Current tag: [view_tag] <br>
+[end]
+
+

Added: trunk/gforge_base/evolvisforge/plugins.test/scmsvn/etc/plugins/scmsvn/viewcvs/templates/log.ezt
===================================================================
--- trunk/gforge_base/evolvisforge/plugins.test/scmsvn/etc/plugins/scmsvn/viewcvs/templates/log.ezt	                        (rev 0)
+++ trunk/gforge_base/evolvisforge/plugins.test/scmsvn/etc/plugins/scmsvn/viewcvs/templates/log.ezt	2010-02-26 00:19:01 UTC (rev 4850)
@@ -0,0 +1,155 @@
+[# setup page definitions]
+  [define location][rootname][if-any where]: [where][end][end]
+  [define page_title][cfg.general.main_title] - log - [location][end]
+  [define help_href][docroot]/help_log.html[end]
+[# end]
+
+[include "include/header.ezt" "log"]
+
+<hr noshade>
+
+[include "include/branch.ezt"]
+
+[include "include/view_tag.ezt"]
+
+[include "include/paging.ezt"]
+
+[for entries]
+  <hr size=1 noshade>
+
+  [is roottype "svn"]
+    [is entries.filename where][else]Filename: [entries.filename]<br>[end]
+  [end]
+
+  [is entries.state "dead"]
+    Revision <b>[entries.rev]</b>
+  [else]
+    <a name="rev[entries.rev]"></a>
+    [for entries.tag_names]<a name="[entries.tag_names]"></a>
+    [end]
+    [for entries.branch_names]<a name="[entries.branch_names]"></a>
+    [end]
+
+    Revision [is roottype "svn"]<a href="[entries.revision_href]"><b>[entries.rev]</b></a>[else]<b>[entries.rev]</b>[end]
+    [is pathtype "file"] - 
+      (<a href="[entries.view_href]">view</a>)
+      (<a href="[entries.download_href]">download</a>)
+      [if-any entries.download_text_href](<a href="[entries.download_text_href]">as text</a>)[end]
+      [# if you don't want to allow annotation, then remove this line]
+      [is roottype "svn"][else](<a href="[entries.annotate_href]">annotate</a>)[end]
+
+      [# if you don't want to allow select for diffs then remove this section]
+      [is entries.rev rev_selected]
+        - <b>[[]selected]</b>
+      [else]
+        - <a href="[entries.sel_for_diff_href]">[[]select for diffs]</a>
+      [end]
+    [end]
+  [end]
+
+  [if-any entries.vendor_branch]
+    <i>(vendor branch)</i>
+  [end]
+
+  <br>
+
+  [is roottype "svn"]
+    [if-index entries last]Added[else]Modified[end]
+  [end]
+
+  <i>[entries.date_str]</i> ([entries.ago] ago) by <i>[entries.author]</i>
+
+  [if-any entries.branches]
+    <br>Branch:
+    [for entries.branches]
+      <a href="[entries.branches.href]"><b>[entries.branches.name]</b></a>[if-index entries.branches last][else],[end]
+    [end]
+  [end]
+
+  [if-any entries.tags]
+    <br>CVS Tags:
+    [for entries.tags]
+      <a href="[entries.tags.href]"><b>[entries.tags.name]</b></a>[if-index entries.tags last][else],[end]
+    [end]
+  [end]
+
+  [if-any entries.branch_points]
+    <br>Branch point for:
+    [for entries.branch_points]
+      <a href="[entries.branch_points.href]"><b>[entries.branch_points.name]</b></a>[if-index entries.branch_points last][else],[end]
+    [end]
+  [end]
+
+  [if-any entries.prev]
+    [if-any entries.changed]
+      [is roottype "cvs"]
+      <br>Changes since <b>[entries.prev]: [entries.changed] lines</b>
+      [end]
+    [end]
+  [end]
+
+  [is roottype "svn"]
+    [if-any entries.size]
+    <br>File length: [entries.size] byte(s)</b>
+    [end]
+
+    [if-any entries.copy_path]
+    <br>Copied from: <a href="[entries.copy_href]">[entries.copy_path]</a> revision [entries.copy_rev]
+    [end]
+  [end]
+
+  [is entries.state "dead"]
+    <br><b><i>FILE REMOVED</i></b>
+  [else]
+   [is pathtype "file"]
+    [if-any entries.prev]
+      <br>Diff to <a href="[entries.diff_to_prev_href]">previous [entries.prev]</a>
+      [if-any human_readable]
+      [else]
+        (<a href="[entries.diff_to_prev_href]&amp;diff_format=h">colored</a>)
+      [end]
+    [end]
+
+    [is roottype "cvs"]
+      [if-any entries.branch_point]
+        , to <a href="[entries.diff_to_branch_href]">branch point [entries.branch_point]</a>
+        [if-any human_readable]
+        [else]
+           (<a href="[entries.diff_to_branch_href]&amp;diff_format=h">colored</a>)
+        [end]
+      [end]
+  
+      [if-any entries.next_main]
+        , to <a href="[entries.diff_to_main_href]">next main [entries.next_main]</a>
+        [if-any human_readable]
+        [else]
+           (<a href="[entries.diff_to_main_href]&amp;diff_format=h">colored</a>)
+        [end]
+      [end]
+    [end]
+
+    [if-any entries.diff_to_sel_href]
+      [if-any entries.prev], [else]<br>Diff[end]
+        to <a href="[entries.diff_to_sel_href]">selected [rev_selected]</a>
+      [if-any human_readable]
+      [else]
+        (<a href="[entries.diff_to_sel_href]&amp;diff_format=h">colored</a>)
+      [end]
+    [end]
+   [end]
+  [end]
+
+<pre class="vc_log">[entries.html_log]</pre>
+[end]
+
+[include "include/paging.ezt"]
+
+[is pathtype "file"]
+  [include "include/diff_form.ezt"]
+[end]
+
+[include "include/branch_form.ezt"]
+
+[include "include/sort.ezt"]
+
+[include "include/footer.ezt"]

Added: trunk/gforge_base/evolvisforge/plugins.test/scmsvn/etc/plugins/scmsvn/viewcvs/templates/log_table.ezt
===================================================================
--- trunk/gforge_base/evolvisforge/plugins.test/scmsvn/etc/plugins/scmsvn/viewcvs/templates/log_table.ezt	                        (rev 0)
+++ trunk/gforge_base/evolvisforge/plugins.test/scmsvn/etc/plugins/scmsvn/viewcvs/templates/log_table.ezt	2010-02-26 00:19:01 UTC (rev 4850)
@@ -0,0 +1,179 @@
+[# setup page definitions]
+  [define location][rootname][if-any where]: [where][end][end]
+  [define page_title][cfg.general.main_title] - log - [location][end]
+  [define help_href][docroot]/help_logtable.html[end]
+[# end]
+
+[include "include/header.ezt" "logtable"]
+
+<hr noshade>
+
+[include "include/branch.ezt"]
+
+[include "include/view_tag.ezt"]
+
+[include "include/paging.ezt"]
+
+<hr noshade>
+<table width="100%" border="0" cellspacing="1" cellpadding="2">
+<thead>
+<tr>
+  <th align="left" class="vc_header[is logsort "rev"]_sort[end]">Revision</th>
+  [is pathtype "file"]
+  <th align="left" class="vc_header">Tasks</th>
+  <th align="left" class="vc_header">Diffs</th>
+  [end]
+  [is roottype "cvs"]
+  <th align="left" class="vc_header">Branches/<br>Tags</th>
+  [end]
+  <th align="left" class="vc_header[is logsort "date"]_sort[end]">Age</th>
+  <th align="left" class="vc_header">Author</th>
+</tr>
+</thead>
+[for entries]
+  <tbody>
+  <tr valign="top" class="vc_row_[if-index entries even]even[else]odd[end]">
+
+    [# Revision column]
+    <td rowspan="2">
+      [is roottype "svn"]<a href="[entries.revision_href]"><b>[entries.rev]</b></a>[else]<b>[entries.rev]</b>[end]
+      <a name="rev[entries.rev]"></a>
+    </td>
+
+    [is pathtype "file"]
+      <td>
+      [# Tasks column]
+        <a href="[entries.view_href]"><b>View</b></a><br>
+        <a href="[entries.download_href]"><b>Download</b></a><br>
+        [if-any entries.download_text_href]<a href="[entries.download_text_href]"><b>As text</b></a><br>[end]
+
+        [# if you don't want to allow annotation, then remove this line]
+        [is roottype "svn"][else]<a href="[entries.annotate_href]"><b>Annotate</b></a><br>[end]
+      </td>
+      <td>
+      [is entries.state "dead"]
+        <b><i>FILE REMOVED</i></b>
+      [else]
+      [# if you don't want to allow select for diffs then remove this section]
+      [is entries.rev rev_selected]
+        <b>[[]selected]</b><br>
+      [else]
+      <a href="[entries.sel_for_diff_href]"><b>[[]select&nbsp;for&nbsp;diffs]</b></a><br>
+      [end]
+        [if-any entries.diff_to_sel_href]
+          <a href="[entries.diff_to_sel_href]"><b>Diff&nbsp;to&nbsp;selected&nbsp;[rev_selected]</b></a>
+          [if-any human_readable]
+          [else]
+            (<a href="[entries.diff_to_sel_href]&amp;diff_format=h"><b>colored</b></a>)
+          [end]<br />
+        [end]
+        [if-any entries.prev]
+          <a href="[entries.diff_to_prev_href]"><b>Diff&nbsp;to&nbsp;previous&nbsp;[entries.prev]</b></a>
+          [if-any human_readable]
+          [else]
+            (<a href="[entries.diff_to_prev_href]&amp;diff_format=h"><b>colored</b></a>)
+          [end]<br />
+        [end]
+      [end]  
+      </td>
+    [end]
+    [is roottype "cvs"]
+    <td>
+      [# Branches column]
+      [if-any entries.vendor_branch]
+        <i>vendor branch</i><br>
+      [end]
+      [if-any entries.branches]
+        [for entries.branches]
+          <a href="[entries.branches.href]"><b>[entries.branches.name]</b></a><br>
+        [end]
+      [end]
+      [if-any entries.branch_points]
+        Branch point for:
+        [for entries.branch_points]
+          <a href="[entries.branch_points.href]"><b>[entries.branch_points.name]</b></a><br>
+        [end]
+      [end]
+      [if-any entries.next_main]
+        <a href="[entries.diff_to_main_href]"><b>Diff&nbsp;to&nbsp;next&nbsp;MAIN&nbsp;[entries.next_main]</b></a>
+        [if-any human_readable]
+        [else]
+          (<a href="[entries.diff_to_main_href]&amp;diff_format=h"><b>colored</b></a>)
+        [end]<br />
+      [end]
+      [if-any entries.branch_point]
+        <a href="[entries.diff_to_branch_href]"><b>Diff&nbsp;to&nbsp;branch&nbsp;point&nbsp;[entries.branch_point]</b></a>
+        [if-any human_readable]
+        [else]
+          (<a href="[entries.diff_to_branch_href]&amp;diff_format=h"><b>colored</b></a>)
+        [end]<br />
+      [end]
+
+      [# Tags ]
+      [if-any entries.tags]
+        <form method=get action="[branch_select_action]" >
+          [branch_select_hidden_values]
+          <select name="only_with_tag" onChange="submit()">
+          <option value="" [is view_tag ""]selected[end]>Show all tags</option>
+          [for entries.tags]
+            <option [is view_tag entries.tags.name]selected[end]>[entries.tags.name]</option>
+          [end]
+          </select>
+        </form>
+      [else]&nbsp;
+      [end]
+    </td>
+    [end]
+
+    [# Time column]
+    <td>
+      [is roottype "svn"]
+        [if-index entries last]Added[else]Modified[end]
+      [end]
+      [entries.ago] ago<br><i>[entries.date_str]</i>
+      [is roottype "cvs"]
+        [if-any entries.prev]
+          [if-any entries.changed]
+            <br>Changes since <b>[entries.prev]: [entries.changed] lines</b>
+          [end]
+        [end]
+      [end]
+    </td>
+
+    [# Author column]
+    <td>
+      [entries.author]
+    </td>
+
+  </tr>
+  <tr class="vc_row_[if-index entries even]even[else]odd[end]">
+    <td colspan=5>
+      [is roottype "svn"]
+        [is entries.filename where][else]<b>File name: </b>[entries.filename]<br>[end]
+        [if-any entries.size]
+          <b>File length: </b>[entries.size] byte(s)<br>
+        [end]
+
+        [if-any entries.copy_path]
+           <b>Copied from: </b><a href="[entries.copy_href]">[entries.copy_path]</a> revision [entries.copy_rev]<br>
+        [end]
+      [end]
+
+      <b>Log: </b><pre class="vc_log">[entries.html_log]</pre>
+    </td>
+  </tr>
+  </tbody>
+[end]
+</table>
+
+[include "include/paging.ezt"]
+
+[is pathtype "file"]
+  [include "include/diff_form.ezt"]
+[end]
+
+[include "include/branch_form.ezt"]
+
+[include "include/sort.ezt"]
+
+[include "include/footer.ezt"]

Added: trunk/gforge_base/evolvisforge/plugins.test/scmsvn/etc/plugins/scmsvn/viewcvs/templates/markup.ezt
===================================================================
--- trunk/gforge_base/evolvisforge/plugins.test/scmsvn/etc/plugins/scmsvn/viewcvs/templates/markup.ezt	                        (rev 0)
+++ trunk/gforge_base/evolvisforge/plugins.test/scmsvn/etc/plugins/scmsvn/viewcvs/templates/markup.ezt	2010-02-26 00:19:01 UTC (rev 4850)
@@ -0,0 +1,52 @@
+[# setup page definitions]
+  [define location][rootname][if-any where]: [where][end][end]
+  [define page_title][cfg.general.main_title] - markup - [location][end]
+  [define help_href][docroot]/help_rootview.html[end]
+[# end]
+
+[include "include/header.ezt" "markup"]
+
+<div class="vc_summary">
+File: [nav_file]
+
+(<a href="[download_href]"><b>download</b></a>)
+[if-any download_text_href](<a href="[download_text_href]"><b>as text</b></a>)[end]
+
+<br>
+
+[if-any log]
+  Revision: <b>[rev]</b>[if-any vendor_branch] <i>(vendor branch)</i>[end],
+  <i>[date_str]</i> ([ago] ago) by <i>[author]</i>
+  
+  [if-any branches]
+    <br>Branch: <b>[branches]</b>
+  [end]
+  [if-any tags]
+    <br>CVS Tags: <b>[tags]</b>
+  [end]
+  [if-any branch_points]
+    <br>Branch point for: <b>[branch_points]</b>
+  [end]
+  [is roottype "cvs"]
+    [if-any changed]
+      <br>Changes since <b>[prev]: [changed] lines</b>
+    [end]
+  [end]
+  [is roottype "svn"]
+    <br>File size: [size] byte(s)
+  [end]
+  [is state "dead"]
+    <br><b><i>FILE REMOVED</i></b>
+  [end]
+  <pre class="vc_log">[log]</pre>
+[else]
+  Revision: <b>[rev]</b><br>
+  [if-any tag]
+    Tag: <b>[tag]</b><br>
+  [end]
+[end]
+</div>
+
+[markup]
+
+[include "include/footer.ezt"]

Added: trunk/gforge_base/evolvisforge/plugins.test/scmsvn/etc/plugins/scmsvn/viewcvs/templates/query.ezt
===================================================================
--- trunk/gforge_base/evolvisforge/plugins.test/scmsvn/etc/plugins/scmsvn/viewcvs/templates/query.ezt	                        (rev 0)
+++ trunk/gforge_base/evolvisforge/plugins.test/scmsvn/etc/plugins/scmsvn/viewcvs/templates/query.ezt	2010-02-26 00:19:01 UTC (rev 4850)
@@ -0,0 +1,244 @@
+<!doctype html public "-//W3C//DTD HTML 4.0 Transitional//EN"
+ "http://www.w3.org/TR/REC-html40/loose.dtd">
+<!-- ViewCVS       -- http://viewcvs.sourceforge.net/
+     by Greg Stein -- mailto:gstein at lyra.org  -->
+
+<html>
+<head>
+  <title>[cfg.general.main_title] - query</title>
+  <link rel="stylesheet" href="[docroot]/styles.css" type="text/css">
+</head>
+
+<body>
+
+[# setup page definitions]
+  [define help_href][docroot]/help_query.html[end]
+[# end]
+
+  <p> 
+    Select your parameters for querying the CVS commit database.  You
+    can search for multiple matches by typing a comma-seperated list
+    into the text fields.  Regular expressions, and wildcards are also
+    supported.  Blank text input fields are treated as wildcards.
+  </p>
+  <p>
+    Any of the text entry fields can take a comma-seperated list of
+    search arguments.  For example, to search for all commits from
+    authors <i>jpaint</i> and <i>gstein</i>, just type: <b>jpaint,
+    gstein</b> in the <i>Author</i> input box.  If you are searching
+    for items containing spaces or quotes, you will need to quote your
+    request.  For example, the same search above with quotes is:
+    <b>"jpaint", "gstein"</b>.
+  </p>
+  <p>                           
+
+    Wildcard and regular expression searches are entered in a similar
+    way to the quoted requests.  You must quote any wildcard or
+    regular expression request, and a command charactor preceeds the
+    first quote.  The command charactor <b>l</b> is for wildcard
+    searches, and the wildcard charactor is a percent (<b>%</b>).  The
+    command charactor for regular expressions is <b>r</b>, and is
+    passed directly to MySQL, so you'll need to refer to the MySQL
+    manual for the exact regex syntax.  It is very similar to Perl.  A
+    wildard search for all files with a <i>.py</i> extention is:
+    <b>l"%.py"</b> in the <i>File</i> input box.  The same search done
+    with a regular expression is: <b>r".*\.py"</b>.
+  </p>
+  <p>                  
+    All search types can be mixed, as long as they are seperated by
+    commas.
+  </p>                                                    
+
+<form method=get>
+
+<div class="vc_query_form">
+<table border=0 cellspacing=0 cellpadding=2 width=100%>
+ <tr>
+  <td>
+   <table>
+    <tr>
+     <td valign=top>
+
+      <table>
+       <tr>
+        <td align=right>CVS Repository:</td>
+        <td>
+         <input type=text name=repository size=40 value="[repository]">
+        </td>
+       </tr>
+       <tr>
+        <td align=right>CVS Branch:</td>
+        <td>
+         <input type=text name=branch size=40 value="[branch]">
+        </td>
+       </tr>
+       <tr>
+        <td align=right>Directory:</td>
+        <td>
+         <input type=text name=directory size=40 value="[directory]">
+        </td>
+       </tr>
+       <tr>
+        <td align=right>File:</td>
+        <td>
+         <input type=text name=file size=40 value="[file]">
+        </td>
+       </tr>
+       <tr>
+        <td align=right>Author:</td>
+        <td>
+         <input type=text name=who size=40 value="[who]">
+        </td>
+       </tr>
+      </table>
+
+     </td>
+     <td valign=top>
+
+      <table>
+       <tr>
+        <td align=left>Sort By:</td>
+        <td>
+         <select name=sortby>
+          <option value=date [is sortby "date"]selected[end]>Date</option>
+          <option value=author [is sortby "author"]selected[end]>Author</option>
+          <option value=file [is sortby "file"]selected[end]>File</option>
+         </select>
+        </td>
+       </tr>
+       <tr>
+        <td colspan=2>
+         <table border=0 cellspacing=0 cellpadding=0>
+          <tr>
+           <td>Date:</td>
+          </tr>
+          <tr>
+           <td><input type=radio name=date value=hours
+		  [is date "hours"]checked[end]></td>
+           <td>In the last
+             <input type=text name=hours value=[hours] size=4>hours
+           </td>
+          </tr>
+          <tr>
+           <td><input type=radio name=date value=day
+		  [is date "day"]checked[end]></td>
+           <td>In the last day</td>
+          </tr>
+          <tr>
+           <td><input type=radio name=date value=week
+		  [is date "week"]checked[end]></td>
+           <td>In the last week</td>
+          </tr>
+          <tr>
+           <td><input type=radio name=date value=month
+		  [is date "month"]checked[end]></td>
+           <td>In the last month</td>
+          </tr>
+          <tr>
+           <td><input type=radio name=date value=all
+		  [is date "all"]checked[end]></td>
+           <td>Since the beginning of time</td>
+          </tr>
+         </table>
+        </td>
+       </tr>
+      </table>
+
+     </td>
+    </tr>
+   </table>
+  </td>
+  <td>
+   <input type=submit value="Search">
+  </td>
+ </tr>
+</table>
+</div>
+
+</form>
+
+[is query "skipped"]
+[else]
+<p><b>[num_commits]</b> matches found.</p>
+
+[if-any commits]
+<table width="100%" border=0 cellspacing=0 cellpadding=2>
+ <thead>
+ <tr class="vc_header">
+  <th align=left valign=top>Revision</th>
+  <th align=left valign=top>File</th>
+  <th align=left valign=top>Branch</th>
+  <th align=left valign=top>+/-</th>
+  <th align=left valign=top>Date</th>
+  <th align=left valign=top>Author</th>
+[# uncommment, if you want a separate Description column: (also see below)
+<th align=left valign=top>Description</th>
+]
+ </tr>
+ </thead>
+[for commits]
+ <tbody>
+  [for commits.files]
+    <tr class="vc_row_[if-index commits even]even[else]odd[end]">
+      <td align=left valign=top>
+	[if-any commits.files.rev][commits.files.rev][else]&nbsp;[end]
+      </td>
+      <td align=left valign=top>[commits.files.link]</td>
+      <td align=left valign=top>
+	[if-any commits.files.branch][commits.files.branch][else]&nbsp;[end]
+      </td>
+      <td align=left valign=top>
+        [is commits.files.type "Add"]<ins>[end]
+        [is commits.files.type "Change"]<a href="[commits.files.difflink]">[end]
+        [is commits.files.type "Remove"]<del>[end]
+          [commits.files.plus]/[commits.files.minus]
+        [is commits.files.type "Add"]</ins>[end]
+        [is commits.files.type "Change"]</a>[end]
+        [is commits.files.type "Remove"]</del>[end]
+      </td>
+      <td align=left valign=top>
+	[if-any commits.files.date][commits.files.date][else]&nbsp;[end]
+      </td>
+      <td align=left valign=top>
+	[if-any commits.files.author][commits.files.author][else]&nbsp;[end]
+      </td>
+
+[# uncommment, if you want a separate Description column:
+      {if-index commits.files first{
+        <td align=left valign=top rowspan={commits.num_files}>
+          {commits.desc}
+        </td>
+      {end}
+
+   (substitute brackets for the braces)
+]
+    </tr>
+[# and also take the following out in the "Description column"-case:]
+      [if-index commits.files last]
+	<tr class="vc_row_[if-index commits even]even[else]odd[end]">
+	  <td>&nbsp;</td>
+	  <td colspan=5><b>Log:</b><br>
+	    <pre class="vc_log">[commits.desc]</pre></td>
+	</tr>
+      [end]
+[# ---]
+  [end]
+ </tbody>
+[end]
+
+ <tr class="vc_header">
+  <th align=left valign=top>&nbsp;</th>
+  <th align=left valign=top>&nbsp;</th>
+  <th align=left valign=top>&nbsp;</th>
+  <th align=left valign=top>&nbsp;</th>
+  <th align=left valign=top>&nbsp;</th>
+  <th align=left valign=top>&nbsp;</th>
+[# uncommment, if you want a separate Description column:
+  <th align=left valign=top>&nbsp;</th>
+]
+ </tr>
+</table>
+[end]
+[end]
+
+[include "include/footer.ezt"]

Added: trunk/gforge_base/evolvisforge/plugins.test/scmsvn/etc/plugins/scmsvn/viewcvs/templates/query_form.ezt
===================================================================
--- trunk/gforge_base/evolvisforge/plugins.test/scmsvn/etc/plugins/scmsvn/viewcvs/templates/query_form.ezt	                        (rev 0)
+++ trunk/gforge_base/evolvisforge/plugins.test/scmsvn/etc/plugins/scmsvn/viewcvs/templates/query_form.ezt	2010-02-26 00:19:01 UTC (rev 4850)
@@ -0,0 +1,167 @@
+[# setup page definitions]
+  [define location][rootname][if-any where]: [where][end][end]
+  [define page_title][cfg.general.main_title] - query - [location][end]
+  [define help_href][docroot]/help_rootview.html[end]
+[# end]
+
+[include "include/header.ezt" "query"]
+
+<form action="[query_action]" method="get">
+  [query_hidden_values]
+
+<div class="vc_query_form">
+<table border="0" cellspacing="0" cellpadding="5">
+  [is roottype "cvs"]
+  [# For subversion, the branch field is not used ]
+  <tr>
+    <th align="right" valign="top">Branch:</th>
+    <td>
+      <input type="text" name="branch" value="[branch]" /><br />
+      <label for="branch_match_exact">
+        <input type="radio" name="branch_match" id="branch_match_exact"
+           value="exact" [is branch_match "exact"]checked=""[end] />
+        Exact match
+      </label>
+      <label for="branch_match_glob">
+        <input type="radio" name="branch_match" id="branch_match_glob"
+           value="glob" [is branch_match "glob"]checked=""[end] />
+        Glob pattern match
+      </label>
+      <label for="branch_match_regex">
+        <input type="radio" name="branch_match" id="branch_match_regex"
+           value="regex" [is branch_match "regex"]checked=""[end] />
+        Regex match
+      </label>
+      <label for="branch_match_notregex">
+        <input type="radio" name="branch_match" id="branch_match_notregex"
+           value="notregex" [is branch_match "notregex"]checked=""[end] />
+        Regex doesn't match
+      </label>
+    </td>
+  </tr>
+  [end]
+  <tr>
+    <th align="right" valign="top">Subdirectory:</th>
+    <td>
+      <input type="text" name="dir" value="[dir]" /><br />
+      (you can list multiple directories separated by commas)
+    </td>
+  </tr>
+  <tr>
+    <th align="right" valign="top">File:</th>
+    <td>
+      <input type="text" name="file" value="[file]" /><br />
+      <label for="file_match_exact">
+        <input type="radio" name="file_match" id="file_match_exact"
+           value="exact" [is file_match "exact"]checked=""[end] />
+        Exact match
+      </label>
+      <label for="file_match_glob">
+        <input type="radio" name="file_match" id="file_match_glob"
+           value="glob" [is file_match "glob"]checked=""[end] />
+        Glob pattern match
+      </label>
+      <label for="file_match_regex">
+        <input type="radio" name="file_match" id="file_match_regex"
+           value="regex" [is file_match "regex"]checked=""[end] />
+        Regex match
+      </label>
+      <label for="file_match_notregex">
+        <input type="radio" name="file_match" id="file_match_notregex"
+           value="notregex" [is file_match "notregex"]checked=""[end] />
+        Regex doesn't match
+      </label>
+    </td>
+  </tr>
+  <tr>
+    <th align="right" valign="top">Who</th>
+    <td>
+      <input type="text" name="who" value="[who]" /><br />
+      <label for="who_match_exact">
+        <input type="radio" name="who_match" id="who_match_exact"
+           value="exact" [is who_match "exact"]checked=""[end] />
+        Exact match
+      </label>
+      <label for="who_match_glob">
+        <input type="radio" name="who_match" id="who_match_glob"
+           value="glob" [is who_match "glob"]checked=""[end] />
+        Glob pattern match
+      </label>
+      <label for="who_match_regex">
+        <input type="radio" name="who_match" id="who_match_regex"
+           value="regex" [is who_match "regex"]checked=""[end] />
+        Regex match
+      </label>
+      <label for="who_match_notregex">
+        <input type="radio" name="who_match" id="who_match_notregex"
+           value="notregex" [is who_match "notregex"]checked=""[end] />
+        Regex doesn't match
+      </label>
+    </td>
+  </tr>
+  <tr>
+    <th align="right" valign="top">Sort By:</th>
+    <td>
+      <select name="querysort">
+        <option value="date" [is querysort "date"]selected=""[end]>Date</option>
+        <option value="author" [is querysort "author"]selected=""[end]>Author</option>
+        <option value="file" [is querysort "file"]selected=""[end]>File</option>
+      </select>
+    </td>
+  </tr>
+  <tr>
+    <th align="right" valign="top">Date:</th>
+    <td>
+      <table border="0" cellspacing="0" cellpadding="0">
+        <tr>
+          <td><input type="radio" name="date" id="date_hours"
+                 value="hours" [is date "hours"]checked=""[end] /></td>
+          <td>
+            <label for="date_hours">In the last</label>
+            <input type="text" name="hours" value="[hours]" size="4" />
+            hours
+          </td>
+        </tr>
+        <tr>
+          <td><input type="radio" name="date" id="date_day"
+                 value="day" [is date "day"]checked=""[end] /></td>
+          <td><label for="date_day">In the last day</label></td>
+        </tr>
+        <tr>
+          <td><input type="radio" name="date" id="date_week"
+                 value="week" [is date "week"]checked=""[end] /></td>
+          <td><label for="date_week">In the last week</label></td>
+        </tr>
+        <tr>
+          <td><input type="radio" name="date" id="date_month"
+                 value="month" [is date "month"]checked=""[end] /></td>
+          <td><label for="date_month">In the last month</label></td>
+        </tr>
+        <tr>
+          <td><input type="radio" name="date" id="date_all"
+                 value="all" [is date "all"]checked=""[end] /></td>
+          <td><label for="date_all">Since the beginning of time</label></td>
+        </tr>
+        <tr>
+          <td><input type="radio" name="date" id="date_explicit"
+                 value="explicit" [is date "explicit"]checked=""[end] /></td>
+          <td>
+            <label for="date_explicit">Between</label>
+            <input type="text" name="mindate" value="[mindate]" size="20" />
+            and
+            <input type="text" name="maxdate" value="[maxdate]" size="20" />
+            <br />
+            (use the form <b>yyyy-mm-dd hh:mm:ss</b>)
+          </td>
+        </tr>
+      </table>
+    </td>
+  </tr>
+  <tr>
+    <td></td>
+    <td><input type="submit" value="Search" /></td>
+  </tr>
+</table>
+</div>
+
+[include "include/footer.ezt"]

Added: trunk/gforge_base/evolvisforge/plugins.test/scmsvn/etc/plugins/scmsvn/viewcvs/templates/query_results.ezt
===================================================================
--- trunk/gforge_base/evolvisforge/plugins.test/scmsvn/etc/plugins/scmsvn/viewcvs/templates/query_results.ezt	                        (rev 0)
+++ trunk/gforge_base/evolvisforge/plugins.test/scmsvn/etc/plugins/scmsvn/viewcvs/templates/query_results.ezt	2010-02-26 00:19:01 UTC (rev 4850)
@@ -0,0 +1,77 @@
+[# setup page definitions]
+  [define location][rootname][if-any where]: [where][end][end]
+  [define page_title][cfg.general.main_title] - query results - [location][end]
+  [define help_href][docroot]/help_rootview.html[end]
+[# end]
+
+[include "include/header.ezt"]
+
+<p><b>[english_query]</b></p>
+[# <!-- {sql} --> ]
+<p><a href="[queryform_href]">Modify query</a></p>
+<p><a href="[backout_href]">Show commands which could be used to back out these changes</a></p>
+
+<p><b>+[plus_count]/-[minus_count]</b> lines changed.</p>
+
+[if-any commits]
+<table width="100%" border="0" cellspacing="1" cellpadding="2">
+ <thead>
+  <tr>
+   <th align="left" class="vc_header">Revision</th>
+   <th align="left" class="vc_header[is querysort "file"]_sort[end]">File</th>
+[if-any show_branch]
+   <th align="left" class="vc_header">Branch</th>
+[end]
+   <th align="left" class="vc_header">+/-</th>
+   <th align="left" class="vc_header[is querysort "date"]_sort[end]">Date</th>
+   <th align="left" class="vc_header[is querysort "author"]_sort[end]">Author</th>
+[# uncommment, if you want a separate Description column: (also see below)
+   <th align="left" class="vc_header">Description</th>
+]
+  </tr>
+ </thead>
+[for commits]
+  [for commits.files]
+    <tbody>
+    <tr class="vc_row_[if-index commits even]even[else]odd[end]">
+      <td align=left valign=top>
+	[if-any commits.files.rev]<a href="[commits.files.rev_href]">[commits.files.rev]</a>[else]&nbsp;[end]
+      </td>
+      <td align="left" valign="top">
+        <a href="[commits.files.dir_href]">[commits.files.dir]/</a>
+        <a href="[commits.files.log_href]">[commits.files.file]</a>
+      </td>
+[if-any show_branch]
+      <td align="left" valign="top">
+	[if-any commits.files.branch][commits.files.branch][else]&nbsp;[end]
+      </td>
+[end]
+      <td align="left" valign="top">
+        [# only show a diff link for changes ]
+        [is commits.files.type "Add"]<ins>[end]
+        [is commits.files.type "Change"]<a href="[commits.files.diff_href]">[end]
+        [is commits.files.type "Remove"]<del>[end]
+          [commits.files.plus]/[commits.files.minus]
+        [is commits.files.type "Add"]</ins>[end]
+        [is commits.files.type "Change"]</a>[end]
+        [is commits.files.type "Remove"]</del>[end]
+      </td>
+      <td align="left" valign="top">
+	[if-any commits.files.date][commits.files.date][else]&nbsp;[end]
+      </td>
+      <td align="left" valign="top">
+	[if-any commits.files.author][commits.files.author][else]&nbsp;[end]
+      </td>
+    </tr>
+  [end]
+  <tr class="vc_row_[if-index commits even]even[else]odd[end]">
+    <td>&nbsp;</td>
+    <td colspan="5"><b>Log:</b><br>
+      <pre class="vc_log">[commits.desc]</pre></td>
+  </tr>
+  </tbody>
+[end]
+</table>
+[end]
+
+[include "include/footer.ezt"]

Added: trunk/gforge_base/evolvisforge/plugins.test/scmsvn/etc/plugins/scmsvn/viewcvs/templates/revision.ezt
===================================================================
--- trunk/gforge_base/evolvisforge/plugins.test/scmsvn/etc/plugins/scmsvn/viewcvs/templates/revision.ezt	                        (rev 0)
+++ trunk/gforge_base/evolvisforge/plugins.test/scmsvn/etc/plugins/scmsvn/viewcvs/templates/revision.ezt	2010-02-26 00:19:01 UTC (rev 4850)
@@ -0,0 +1,91 @@
+[# setup page definitions]
+  [define location][rootname][if-any where]: [where][end][end]
+  [define page_title][cfg.general.main_title] - revision - [location][end]
+  [define help_href][docroot]/help_rootview.html[end]
+[# end]
+
+[include "include/header.ezt" "revision"]
+
+<hr noshade>
+
+<table border="0" cellspacing="1" cellpadding="2">
+  <tr align=left>
+    <th>Jump to revision:</td>
+    <td>
+      <form method=get action="[jump_rev_action]">
+      [jump_rev_hidden_values]
+      <input type="text" name="rev" value="[jump_rev]">
+      <input type=submit value="Go">
+      [if-any prev_href]
+        <a href="[prev_href]"><img src="[icons]/back.gif" border="0" alt="Previous"></a>[end]
+      [if-any next_href] <a href="[next_href]"><img src="[icons]/forward.gif" border="0" alt="Next"></a>[end]
+      </form>
+    </td>
+  </tr>
+  <tr align=left>
+    <th>Author:</th>
+    <td>[author]</td>
+  </tr>
+  <tr align=left>
+    <th>Date:</th>
+    <td>[date_str] <i>([ago] ago)</i></td>
+  </tr>
+</table>
+
+<p><b>Log Message:</b><br/>
+   <pre class="vc_log">[log]</pre>
+</p>
+
+<hr noshade>
+
+<p><b>Changed paths:</b></p>
+<table border="0" cellspacing="1" cellpadding="2">
+  <thead>
+  <tr align=left>
+    <th class="vc_header_sort">Path</th>
+    <th class="vc_header">Action</th>
+    <th class="vc_header">Text Changes</th>
+    <th class="vc_header">Prop Changes</th>
+    <th class="vc_header">Diff to Previous</th>
+  </tr>
+  </thead>
+  <tbody>
+  [if-any changes]
+    [for changes]
+      <tr class="vc_row_[if-index changes even]even[else]odd[end]">
+      <td>
+        [is changes.pathtype "dir"]
+          <img src="[icons]/small/dir.gif">
+        [else]
+          <img src="[icons]/small/text.gif">
+        [end]
+        [is changes.action "deleted"]
+          [changes.filename]
+        [else]
+          <a href="[changes.view_href]">[changes.filename]</a>
+        [end]
+      </td>
+      <td align=center>[changes.action]</td>
+      [is changes.action "deleted"]
+        <td align=center>&nbsp;</td>
+        <td align=center>&nbsp;</td>
+      [else]
+        <td align=center>[is changes.text_mods "1"]X[else]&nbsp;[end]</td>
+        <td align=center>[is changes.prop_mods "1"]X[else]&nbsp;[end]</td>
+      [end]
+        [if-any changes.diff_href]
+          <td align=center><a href="[changes.diff_href]&amp;r1=[rev]&amp;r2=[changes.prev_rev]&amp;p1=[changes.filename]&amp;p2=[changes.prev_path]">(diff to previous)</a></td>
+        [else]
+          <td align=center>&nbsp;</td>
+        [end]
+      </tr>
+    [end]
+  [else]
+    <tr>
+    <td colspan="5">No changed paths.</td>
+    </tr>
+  [end]
+  </tbody>
+</table>
+
+[include "include/footer.ezt"]

Added: trunk/gforge_base/evolvisforge/plugins.test/scmsvn/www/viewcvs/contributing.html
===================================================================
--- trunk/gforge_base/evolvisforge/plugins.test/scmsvn/www/viewcvs/contributing.html	                        (rev 0)
+++ trunk/gforge_base/evolvisforge/plugins.test/scmsvn/www/viewcvs/contributing.html	2010-02-26 00:19:01 UTC (rev 4850)
@@ -0,0 +1,222 @@
+<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
+<html>
+  <head>
+    <title>Contributing to ViewCVS Development</title>
+  </head>
+
+  <body background="images/chalk.jpg">
+
+    <table width="100&#37;" cellspacing=5>
+     <tr>
+        <td width="1%"><a href="index.html"><img border=0
+	      src="images/logo.png"></a>
+	</td>
+	<td>
+	  <h1>Contributing to ViewCVS Development</h1>
+	</td>
+	<td width="1%"><a href="http://sourceforge.net/"><img border=0
+	      src="http://sourceforge.net/sflogo.php?group_id=18760&type=1"></a><br><a href="http://sourceforge.net/projects/viewcvs/">ViewCVS&nbsp;project&nbsp;page</a>
+	</td>
+     </tr>
+     <tr><td width="1%" valign=top>
+         <a href="index.html">Home</a><br>
+         <a href="upgrading.html">Upgrading</a><br>
+	 Contributing<br>
+         <a href="license-1.html">License</a><br>
+         <a href="who.html">Who</a><br>
+     </td><td colspan=2>
+
+      <p>
+      Contributions to ViewCVS are very welcome.
+      </p>
+
+      <h2>Getting Started</h2>
+      <p>
+      Some basic knowledge about <a href="http://www.python.org"><i>Python</i></a> and
+      development Tools like <code>diff</code> is required.  Best is you start
+      with a fresh snapshot, which you may obtain from the 
+      <a href="http://sourceforge.net/cvs/?group_id=18760">CVS-Repository</a> 
+      at SourceForge.
+      </p>
+
+      <h2>Testing and reporting</h2>
+      <p>
+      Testing usability and the installation process on different platforms is
+      also a valuable contribution.  Please report your results back to 
+      us developers.  But always tell us, which version of ViewCVS
+      you used on which platform (and in particular which version of Python
+      you use).  
+      </p><p>
+      If you are using the latest current development version please note 
+      the date of your latest download or cvs update when reporting.
+      </p>
+      
+      <h2>Does a Certain Coding Style Guide apply?</h2>
+      <p>
+      Maintain whatever style is present in the code being modified.  New
+      code can use anything sane (which generally means 
+      <a href="http://python.sourceforge.net/peps/pep-0008.html"><i>PEP&nbsp;8</i></a>).
+      Greg's only real peeve is if someone writes a function call as:  
+      <code>some_func&nbsp;(args)</code>  -- that space is Huge Badness. 
+      </p>
+      <p>
+      CVS keyword macros like for example <code>$</code><code>Id$</code> 
+      are currently <b>not</b> used within the source, because Greg 
+      doesn't like them.  If you want to know why, read this 
+      <a href="http://mailman.lyra.org/pipermail/viewcvs-dev/2002-June/000730.html">EMail</a> (skip to
+      the second half).
+      </p>
+      <p>
+      Otherwise... <i>shrug</i>.
+      </p>
+
+      <h2>Submitting patches</h2>
+      <p>
+      Please use the
+      <a href="http://sourceforge.net/tracker/?func=add&group_id=18760&atid=318760">SourceForge&nbsp;project&nbsp;patch&nbsp;manager</a>
+      to submit your patches.  Unified context diffs relative to the latest 
+      development version are preferred.
+      </p><p>
+      If you have commit access, then you should know what
+      you're doing.  Just make changes directly.  Subscribing to
+      the <a href="http://mailman.lyra.org/mailman/listinfo/viewcvs-dev"><i>developer&nbsp;mailing&nbsp;list</i></a> 
+      is recommended in any case.
+      </p>
+
+      <h2>Preserving security</h2>
+      <p>
+      Since ViewCVS is used in the internet, security is a major issue.
+      If you need to pass data from the request into an external program, 
+      please don't use <code>os.system()</code> or <code>os.popen()</code>.
+      Please use the module <code>lib/popen</code> that comes with ViewCVS
+      instead.
+      </p>
+
+      <h2>Adding new features</h2>
+      <p>
+      If a new file or module is added, a new line in the installer program
+      <code>viewcvs-install</code> is required.
+      </p><p>
+      The library subdirectory contains a module <code>debug</code>, which may
+      useful to make performance tests.
+      </p><p>
+      If you need a new configuration option think carefully, into 
+      which section it belongs.  Try to keep the content of 
+      <code>cgi/viewcvs.conf.dist</code> file and the library module
+      <code>lib/config.py</code> in sync.
+      </p>
+
+      <h2>Hacking on templates</h2>
+      <p>
+      The library module <code>ezt</code> contains a module doc string which
+      describes the directives used in the HTML templates, which can be found
+      in the <code>templates</code> sub directory.
+      </p>
+
+      <h2>Cutting a release</h2>
+      <p>
+      Also there actually is a script <code>tools/make-release</code>, 
+      which creates a release directory, all other steps required to get 
+      a ViewCVS release out of the door will be currently executed manually 
+      by Greg Stein.
+      </p><p>
+      Nevertheless in case he ever wants to retire from this job, it is 
+      probably a good idea to write the procedure down here:
+      <ol>
+        <li>Add a new subsection to the file 
+	 <code>website/upgrading.html</code> describing all user visible 
+	 changes for users of previous releases of ViewCVS.
+	    </li>
+	    <li>Update the <code>CHANGES</code> file</li>
+	    <li>Update the <code>website/index.html</code> file to
+	      refer to the new X.Y files. (there are three links to
+	      update)</li>
+	<li>Edit the file <code>lib/viewcvs.py</code>  and remove the
+	 <tt>"-dev"</tt> suffix from <code>__version__</code>.  The remainder 
+	 should be of the form X.Y, where X is a positive number and 
+	 Y is a single digit.
+	      </li>
+	    <li>Ensure all of the above changes have been committed.</li>
+        <li>Test, Test, Test!  At the time of this writing (1.0-dev) there
+	 is no automatic testsuite available.  So just run with permuting
+	 different <code>viewcvs.conf</code> settings and ... pray.
+	<li>Review any <a 
+	 href="http://sourceforge.net/tracker/?atid=118760&group_id=18760&func=browse">
+	 bug reports, that are still marked open.</a>
+	<li><code>cvs tag V</code><i>X</i><code>_</code><i>Y</i>, where
+	 <i>X</i> and <i>Y</i> should be replaced by the release number
+	 from above.  If a developer is willing to volunteer as a
+	 bug fix patch release manager, it is now possible to start here
+	 at this point with a feature freezed branch using the command 
+	 <blockquote>
+         <code>cvs tag -b V</code><i>X</i><code>_</code><i>Y</i><code>_maint</code>
+	 </blockquote>
+	<li>go into an empty directory and run the command:
+	  <blockquote>
+	   <code>tools/make-release V</code><i>X_Y</i> <code>viewcvs-</code><i>X.Y</i>
+	  </blockquote>
+	 This step requires anonymous CVS access to repository at SourceForge.
+	<li>pack the content of this <code>viewcvs-</code><i>X.Y</i> directory
+	 into a tarball.  
+	<li>Upload the created tarball into the download files section of the
+	 ViewCVS project at SourceForge:
+	      <ul>
+		<li><code>scp viewcvs-X.Y.*
+		    <var>USERNAME</var>@viewcvs.sourceforge.net:/home/groups/v/vi/viewcvs/htdocs</code></li>
+		<li>ssh to viewcvs.sourceforge.net, cd to the above
+		  directory, and do a "<code>cvs update</code>" to
+		  pull down the latest website files.</li>
+		<li>ftp to upload.sourceforge.net, cd to the
+		  <code>/incoming</code> directory, and upload the .gz
+		  and the .zip</li>
+		<li>go to the Admin pages for the ViewCVS project, and
+		go to "Edit/Release Files"</li>
+		<li>select "Add Release" and fill in the new release
+		  name (X.Y)</li>
+		<li>fill in the Change Log section with the relevant
+		  portion from the <code>CHANGES</code> file and
+		  select the "Preserve my pre-formatted text"
+		  option. (and Submit those changes)</li>
+		<li>the files uploaded to upload.sourceforge.net
+		  should appear in the "Add Files To This Release"
+		  section. Select them, and add them.</li>
+
+		<li>For each file: change the processor type to "Any",
+		  select "Source .zip" or "Source .gz" as
+		  appropriate, and hit the Update button. (note: you
+		  need to Update each file separately)</li>
+		<li>After about 15-30 minutes, the files will appear
+		  on the Files page of the project.</li>
+		<li>Select the "I'm sure" button and hit the "Send
+		  Notice" button.</li>
+		<li>Note: if you need to hide a prior release, then go
+		back to the admin page and follow the links for
+		  editing a release. Change the "Status" drop-down to
+		  "Hidden" and submit the change.</li>
+	      </ul>
+	<li>Edit the file <code>lib/viewcvs.py</code> again and this time 
+	 increment the <code>__version__</code> for the next release cycle,
+	 again append the <code>"-dev"</code> to the version and again
+	 <blockquote>
+	  <code>cvs commit -m "new release cycle begins" lib/viewcvs.py</code>.
+	 </blockquote>
+	<li>Write an announcement explaining all the cool new features
+	  and put it out to:
+	  <ul>
+	   <li><a href="http://www.freshmeat.net"><i>www.freshmeat.net</i></a>
+	   <li><a href="http://www.vex.net/parnassus/apyllo.py?i=91022454"><i>Vaults of Parnassus</i></a>
+	   <li><a href="news:comp.lang.python">comp.lang.python</a>
+	   <li><i>Where else? I dunno. Suggestions welcome.</i>
+	  </ul>
+      </ol>
+     </td></tr>
+    </table>
+
+    <hr>
+    <address><a href="mailto:viewcvs-dev at lyra.org">ViewCVS Group</a></address>
+<!-- Created: Thu Oct 18 09:05:40 CEST 2001 -->
+<!-- hhmts start -->
+Last modified: Thu Dec 27 00:13:43 PST 2001
+<!-- hhmts end -->
+  </body>
+</html>

Added: trunk/gforge_base/evolvisforge/plugins.test/scmsvn/www/viewcvs/help_dirview.html
===================================================================
--- trunk/gforge_base/evolvisforge/plugins.test/scmsvn/www/viewcvs/help_dirview.html	                        (rev 0)
+++ trunk/gforge_base/evolvisforge/plugins.test/scmsvn/www/viewcvs/help_dirview.html	2010-02-26 00:19:01 UTC (rev 4850)
@@ -0,0 +1,53 @@
+<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
+<html>
+  <head>
+    <title>ViewCVS Help: Directory View</title>
+  </head>
+
+<body background="images/chalk.jpg">
+  <table width="100&#37;" cellspacing=5>
+    <tr>
+      <td width="1%"><a href="http://viewcvs.sf.net/index.html"><img border=0
+	     src="images/logo.png"></a>
+      </td>
+      <td>
+	<h1>ViewCVS Help: Directory View</h1>
+      </td>
+    </tr>
+    <tr><td width="1%" valign=top bgcolor="#ffffff">
+       <h3>Help</h3>
+       <a href="help_rootview.html">General</a><br>
+       <b>Directory&nbsp;View</b><br>
+       <a href="help_log.html">Classic&nbsp;Log&nbsp;View</a><br>
+       <a href="help_logtable.html">Alternative&nbsp;Log&nbsp;View</a><br>
+       <a href="help_query.html">Query&nbsp;Database</a><br>
+
+       <h3>Internet</h3>
+       <a href="http://viewcvs.sf.net/index.html">Home</a><br>
+       <a href="http://viewcvs.sf.net/upgrading.html">Upgrading</a><br>
+       <a href="http://viewcvs.sf.net/contributing.html">Contributing</a><br>
+       <a href="http://viewcvs.sf.net/license-1.html">License</a><br>
+    </td><td colspan=2>
+  
+    <p>
+      Click on a directory to enter that directory.  Click in the leftmost
+      column of a row to display the revision history of a file and to get 
+      a chance to display diffs between revisions.  Click on second column
+      to view the content of the latest revision of that file.
+    </p>
+    <p>
+      Directories are always displayed first in alphabetically order.
+      Ordinary files follow and are sorted according to the selected 
+      sort criteria.  You may click on a particular column header to
+      select this column as sort criteria.  It is than displayed in
+      another color (e.g. light green, if using the default configuration).
+    </p>
+  </td></tr></table>
+  <hr>
+  <address><a href="mailto:viewcvs-dev at lyra.org">ViewCVS Group</a></address>
+<!-- Created: Thu Oct 25 22:08:29 CEST 2001 -->
+<!-- hhmts start -->
+Last modified: Tue Nov 13 20:40:02 CEST 2001
+<!-- hhmts end -->
+  </body>
+</html>

Added: trunk/gforge_base/evolvisforge/plugins.test/scmsvn/www/viewcvs/help_log.html
===================================================================
--- trunk/gforge_base/evolvisforge/plugins.test/scmsvn/www/viewcvs/help_log.html	                        (rev 0)
+++ trunk/gforge_base/evolvisforge/plugins.test/scmsvn/www/viewcvs/help_log.html	2010-02-26 00:19:01 UTC (rev 4850)
@@ -0,0 +1,61 @@
+<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
+<html>
+  <head>
+    <title>ViewCVS Help: Classic Log View</title>
+  </head>
+
+<body background="images/chalk.jpg">
+  <table width="100&#37;" cellspacing=5>
+    <tr>
+      <td width="1%"><a href="http://viewcvs.sf.net/index.html"><img border=0
+	     src="images/logo.png"></a>
+      </td>
+      <td>
+	<h1>ViewCVS Help: Classic Log View</h1>
+      </td>
+    </tr>
+    <tr><td width="1%" valign=top bgcolor="#ffffff">
+       <h3>Help</h3>
+       <a href="help_rootview.html">General</a><br>
+       <a href="help_dirview.html">Directory&nbsp;View</a><br>
+       <b>Classic&nbsp;Log&nbsp;View</b><br>
+       <a href="help_logtable.html">Alternative&nbsp;Log&nbsp;View</a><br>
+       <a href="help_query.html">Query&nbsp;Database</a><br>
+
+       <h3>Internet</h3>
+       <a href="http://viewcvs.sf.net/index.html">Home</a><br>
+       <a href="http://viewcvs.sf.net/upgrading.html">Upgrading</a><br>
+       <a href="http://viewcvs.sf.net/contributing.html">Contributing</a><br>
+       <a href="http://viewcvs.sf.net/license-1.html">License</a><br>
+    </td><td colspan=2>
+    <p> 
+      The log view displays the revision history of the selected source
+      file.  For each revision the following information is displayed:
+      <ul>
+        <li>the revision number (clickable to download it)</li>
+	<li>a link to view this revision annotated</li>
+	<li>a link to select this revision for diffs (see below)</li>
+	<li>the date and age of this change</li>
+	<li>and the author of this modification.</li>
+	<li>The CVS branch (usually <code>MAIN</code>, if not on a branch).</li>
+	<li>Possibly a list of CVS tags bound to this revision (if any).</li>
+	<li>The size of this change measured in added and removed lines of 
+	    code.</li>
+	<li>Links to view Diffs to the previous revision or possibly to
+	    an arbitrary selected revision (if any, see above).
+	<li>And last but not least, the commit log message which should tell
+	    about the reason for this change.</li>
+      </ul>
+    </p><p>
+      At the bottom of such a page you will find a form which allows
+      to request diffs between arbitrary revisions.
+    </p>
+  </td></tr></table>
+  <hr>
+  <address><a href="mailto:viewcvs-dev at lyra.org">ViewCVS Group</a></address>
+<!-- Created: Thu Oct 25 22:08:29 CEST 2001 -->
+<!-- hhmts start -->
+Last modified: Wed Dec 12 13:56:52 CET 2001
+<!-- hhmts end -->
+  </body>
+</html>

Added: trunk/gforge_base/evolvisforge/plugins.test/scmsvn/www/viewcvs/help_logtable.html
===================================================================
--- trunk/gforge_base/evolvisforge/plugins.test/scmsvn/www/viewcvs/help_logtable.html	                        (rev 0)
+++ trunk/gforge_base/evolvisforge/plugins.test/scmsvn/www/viewcvs/help_logtable.html	2010-02-26 00:19:01 UTC (rev 4850)
@@ -0,0 +1,59 @@
+<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
+<html>
+  <head>
+    <title>ViewCVS Help: Log Table View</title>
+  </head>
+
+<body background="images/chalk.jpg">
+  <table width="100&#37;" cellspacing=5>
+    <tr>
+      <td width="1%"><a href="http://viewcvs.sf.net/index.html"><img border=0
+	     src="images/logo.png"></a>
+      </td>
+      <td>
+	<h1>ViewCVS Help: Log Table View</h1>
+      </td>
+    </tr>
+    <tr><td width="1%" valign=top bgcolor="#ffffff">
+       <h3>Help</h3>
+       <a href="help_rootview.html">General</a><br>
+       <a href="help_dirview.html">Directory&nbsp;View</a><br>
+       <a href="help_log.html">Classic&nbsp;Log&nbsp;View</a><br>
+       <b>Alternative&nbsp;Log&nbsp;View</b><br>
+       <a href="help_query.html">Query&nbsp;Database</a><br>
+
+       <h3>Internet</h3>
+       <a href="http://viewcvs.sf.net/index.html">Home</a><br>
+       <a href="http://viewcvs.sf.net/upgrading.html">Upgrading</a><br>
+       <a href="http://viewcvs.sf.net/contributing.html">Contributing</a><br>
+       <a href="http://viewcvs.sf.net/license-1.html">License</a><br>
+    </td><td colspan=2>
+    <p> 
+      The table based log view must be enabled in the site wide 
+      ViewCVS configuration file.
+    </p><p>
+      It displays the revision history of the selected source
+      file in a table containing the following columns:  
+      <ul>
+        <li><b>Revision</b>: The revision number.</li>
+	<li><b>Tasks</b>: This column contains several links to view 
+	    a revision.</li>
+	<li><b>Diffs</b>: Several links to view the changes between this
+	    and other revisions.
+	<li><b>Branches and Tags</b>: Displays the branch and a pulldown
+	    menu button displaying all tags bound to that revision</li>
+	<li>FIXME: Document the other columns</li>
+      </ul>
+    </p><p>
+      At the bottom of such a page you will find a form which allows
+      to request diffs between arbitrary revisions.
+    </p>
+  </td></tr></table>
+  <hr>
+  <address><a href="mailto:viewcvs-dev at lyra.org">ViewCVS Group</a></address>
+<!-- Created: Thu Oct 25 22:08:29 CEST 2001 -->
+<!-- hhmts start -->
+Last modified: Sat Dec  8 23:26:52 CET 2001
+<!-- hhmts end -->
+  </body>
+</html>

Added: trunk/gforge_base/evolvisforge/plugins.test/scmsvn/www/viewcvs/help_query.html
===================================================================
--- trunk/gforge_base/evolvisforge/plugins.test/scmsvn/www/viewcvs/help_query.html	                        (rev 0)
+++ trunk/gforge_base/evolvisforge/plugins.test/scmsvn/www/viewcvs/help_query.html	2010-02-26 00:19:01 UTC (rev 4850)
@@ -0,0 +1,64 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"
+ "http://www.w3.org/TR/REC-html40/loose.dtd">
+<html><head>
+  <title>ViewCVS Help: Query The Commit Database</title>
+</head>
+
+<body background="images/chalk.jpg">
+<table width="100%" border=0 cellspacing=5 cellpadding=0>
+  <tr>
+    <td width="1%"><a href=".."><img border=0
+        src="images/logo.png"></a>
+    </td>
+    <td><h1>ViewCVS Help: Query The Commit Database</h1></td>
+  </tr>
+  <tr><td width="1%" valign="top" bgcolor="#ffffff">
+     <h3>Other&nbsp;Help:</h3>
+     <a href="help_rootview.html">General</a><br>
+     <a href="help_dirview.html">Directory&nbsp;View</a><br>
+     <a href="help_log.html">Classic&nbsp;Log&nbsp;View</a><br>
+     <a href="help_logtable.html">Alternative&nbsp;Log&nbsp;View</a><br>
+     <b>Query&nbsp;Database</b>
+
+     <h3>Internet</h3>
+     <a href="http://viewcvs.sf.net/index.html">Home</a><br>
+     <a href="http://viewcvs.sf.net/upgrading.html">Upgrading</a><br>
+     <a href="http://viewcvs.sf.net/contributing.html">Contributing</a><br>
+     <a href="http://viewcvs.sf.net/license-1.html">License</a><br>
+  </td><td colspan=2>
+
+  <p> 
+    Select your parameters for querying the CVS commit database in the
+    form at the top of the page.  You
+    can search for multiple matches by typing a comma-seperated list
+    into the text fields.  Regular expressions, and wildcards are also
+    supported.  Blank text input fields are treated as wildcards.
+  </p>
+  <p>
+    Any of the text entry fields can take a comma-seperated list of
+    search arguments.  For example, to search for all commits from
+    authors <i>jpaint</i> and <i>gstein</i>, just type: <code>jpaint,
+    gstein</code> in the <i>Author</i> input box.  If you are searching
+    for items containing spaces or quotes, you will need to quote your
+    request.  For example, the same search above with quotes is:
+    <code>"jpaint", "gstein"</code>.
+  </p>
+  <p>                           
+    Wildcard and regular expression searches are entered in a similar
+    way to the quoted requests.  You must quote any wildcard or
+    regular expression request, and a command character preceeds the
+    first quote.  The command character <code>l</code>(lowercase L) is for wildcard
+    searches, and the wildcard character is a percent (<code>%</code>).  The
+    command character for regular expressions is <code>r</code>, and is
+    passed directly to MySQL, so you'll need to refer to the MySQL
+    manual for the exact regex syntax.  It is very similar to Perl.  A
+    wildard search for all files with a <i>.py</i> extention is:
+    <code>l"%.py"</code> in the <i>File</i> input box.  The same search done
+    with a regular expression is: <code>r".*\.py"</code>.
+  </p>
+  <p>                  
+    All search types can be mixed, as long as they are seperated by
+    commas.
+  </p>                                                    
+  </td></tr></table>
+</body></html>

Added: trunk/gforge_base/evolvisforge/plugins.test/scmsvn/www/viewcvs/help_rootview.html
===================================================================
--- trunk/gforge_base/evolvisforge/plugins.test/scmsvn/www/viewcvs/help_rootview.html	                        (rev 0)
+++ trunk/gforge_base/evolvisforge/plugins.test/scmsvn/www/viewcvs/help_rootview.html	2010-02-26 00:19:01 UTC (rev 4850)
@@ -0,0 +1,90 @@
+<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
+<html>
+  <head>
+    <title>ViewCVS Help: Toplevel Directory View</title>
+  </head>
+
+<body background="images/chalk.jpg">
+  <table width="100&#37;" cellspacing=5>
+    <tr>
+      <td width="1%"><a href=".."><img border=0
+	     src="images/logo.png"></a>
+      </td>
+      <td>
+	<h1>ViewCVS Help: Toplevel Directory View</h1>
+      </td>
+    </tr>
+    <tr><td width="1%" valign=top bgcolor="#ffffff">
+       <h3>Help</h3>
+       <b>General</b><br>
+       <a href="help_dirview.html">Directory&nbsp;View</a><br>
+       <a href="help_log.html">Classic&nbsp;Log&nbsp;View</a><br>
+       <a href="help_logtable.html">Alternative&nbsp;Log&nbsp;View</a><br>
+       <a href="help_query.html">Query&nbsp;Database</a><br>
+
+       <h3>Internet</h3>
+       <a href="http://viewcvs.sf.net/index.html">Home</a><br>
+       <a href="http://viewcvs.sf.net/upgrading.html">Upgrading</a><br>
+       <a href="http://viewcvs.sf.net/contributing.html">Contributing</a><br>
+       <a href="http://viewcvs.sf.net/license-1.html">License</a><br>
+    </td><td colspan=2>
+  
+  <p><b>ViewCVS</b> is a WWW interface for CVS and Subversion repositories.</b>
+    You can browse the
+    file hierarchy by picking directories (which have slashes after
+    them, <i>e.g.</i>, <b>src/</b>).  If you pick a file, you will see
+    the revision history for that file.  Selecting a revision number
+    will display that revision of the file.  There is a link at each
+    revision to display diffs between that revision and the previous
+    one, and a form at the bottom of the page that allows you to
+    display diffs between arbitrary revisions.
+  </p>
+  <h3>ViewCVS History and Credits</h3>
+  <p>
+    This program
+    (<a href="http://viewcvs.sourceforge.net/">ViewCVS</a>)
+    has been written by Greg Stein
+    &lt;<a href="mailto:gstein at lyra.org">gstein at lyra.org</a>&gt;
+    based on the
+    <a href="http://linux.fh-heilbronn.de/~zeller/cgi/cvsweb.cgi">cvsweb</a>
+    script by Henner Zeller
+    &lt;<a href="mailto:zeller at think.de">zeller at think.de</a>&gt;;
+    it is covered by the
+    <a href="http://www.opensource.org/licenses/bsd-license.html">BSD-License</a>.
+    If you would like to use this CGI script on your own web server and
+    CVS tree, see Greg's
+    <a href="http://viewcvs.sourceforge.net/">ViewCVS&nbsp;distribution&nbsp;site</a>.
+    Please send any suggestions, comments, etc. to the
+    <a href="mailto:viewcvs-dev at lyra.org">ViewCVS&nbsp;Developers&nbsp;Mailinglist</a>.
+  </p>
+
+  <h3>Documentation about CVS</h3>
+  <blockquote>
+    <p>
+      <a href="http://cvsbook.red-bean.com/">Karl Fogel's CVS book</a><br>
+      <a href="http://www.loria.fr/~molli/cvs/doc/cvs_toc.html">CVS
+      User's Guide</a><br>
+      <a href="http://cellworks.washington.edu/pub/docs/cvs/tutorial/cvs_tutorial_1.html">Another CVS tutorial</a><br>
+      <a href="http://www.csc.calpoly.edu/~dbutler/tutorials/winter96/cvs/">Yet another CVS tutorial (a little old, but nice)</a><br>
+      <a href="http://www.cs.utah.edu/dept/old/texinfo/cvs/FAQ.txt">An old but very useful FAQ about CVS</a>
+    </p>
+  </blockquote>
+
+  <h3>Documentation about Subversion</h3>
+  <blockquote>
+    <p>
+      <a href="http://svnbook.red-bean.com/">Subversion: the Definitive Guide</a><br>
+    </p>
+  </blockquote>
+
+  <!-- insert repository access instructions here -->
+
+  </td></tr></table>
+  <hr>
+  <address><a href="mailto:viewcvs-dev at lyra.org">ViewCVS Group</a></address>
+<!-- Created: Thu Oct 25 22:16:29 CEST 2001 -->
+<!-- hhmts start -->
+Last modified: Tue Nov 13 20:41:02 CEST 2001
+<!-- hhmts end -->
+  </body>
+</html>

Added: trunk/gforge_base/evolvisforge/plugins.test/scmsvn/www/viewcvs/icons/back.gif
===================================================================
--- trunk/gforge_base/evolvisforge/plugins.test/scmsvn/www/viewcvs/icons/back.gif	                        (rev 0)
+++ trunk/gforge_base/evolvisforge/plugins.test/scmsvn/www/viewcvs/icons/back.gif	2010-02-26 00:19:01 UTC (rev 4850)
@@ -0,0 +1 @@
+GIF89a    ÿÿÿÌÿÿ™™™fff333         !þNThis art is in the public domain. Kevin Hughes, kevinh at eit.com, September 1995 !ù   ,       KºÜþ#òj3S»¢ÎÜõiœ7Nv‚t7*EnXm/û’ë5FPñêxƤ‘¦l(N§ ÚŒÀ¨:‚@ÕV’ÞÐUüè‘Ï‹ ;
\ No newline at end of file

Added: trunk/gforge_base/evolvisforge/plugins.test/scmsvn/www/viewcvs/icons/forward.gif
===================================================================
--- trunk/gforge_base/evolvisforge/plugins.test/scmsvn/www/viewcvs/icons/forward.gif	                        (rev 0)
+++ trunk/gforge_base/evolvisforge/plugins.test/scmsvn/www/viewcvs/icons/forward.gif	2010-02-26 00:19:01 UTC (rev 4850)
@@ -0,0 +1,2 @@
+GIF89a    ÿÿÿÌÿÿ™™™fff333         !þNThis art is in the public domain. Kevin Hughes, kevinh at eit.com, September 1995 !ù   ,       NºÜþ„„ñ\¼DÔ…ïÜA‡i•èQy‘NšßS¸/ÎE¦H`€ãºmñ+}Cdqùã0Ÿ3… 
+U¨O)Ûl¶ÔÞwÙk%ËŠ3ú‘  ;
\ No newline at end of file

Added: trunk/gforge_base/evolvisforge/plugins.test/scmsvn/www/viewcvs/icons/small/back.gif
===================================================================
--- trunk/gforge_base/evolvisforge/plugins.test/scmsvn/www/viewcvs/icons/small/back.gif	                        (rev 0)
+++ trunk/gforge_base/evolvisforge/plugins.test/scmsvn/www/viewcvs/icons/small/back.gif	2010-02-26 00:19:01 UTC (rev 4850)
@@ -0,0 +1,2 @@
+GIF89a  ¢ÿ !!!111ZZZ„„„ŒŒŒÀÀÀ      !ù   ,       FXºÜ
+ÀI`L”‹V‹‹Ð tÄf]Qn(i¶Ã ÈÊZD,­˜ž€00ZLƒ¡Ða"* Ñ°·°„EÇq3ÈJ`p# ;
\ No newline at end of file

Added: trunk/gforge_base/evolvisforge/plugins.test/scmsvn/www/viewcvs/icons/small/debian.jpg
===================================================================
--- trunk/gforge_base/evolvisforge/plugins.test/scmsvn/www/viewcvs/icons/small/debian.jpg	                        (rev 0)
+++ trunk/gforge_base/evolvisforge/plugins.test/scmsvn/www/viewcvs/icons/small/debian.jpg	2010-02-26 00:19:01 UTC (rev 4850)
@@ -0,0 +1,63 @@
+ÿØÿà JFIF      ÿÛ C ÿÛ CÿÀ  = ³" ÿÄ              	
+ÿÄ F  
+   	 
+!1A¶"$5789vwxµ#2Qqtu‘¡³´·FVa˜ÖÿÄ                ÿÄ %          !"1Aq#QÿÚ   ? ßÇ…áx^ªÝÃOñ×^Ìíë²iº›Z×–3Wkäüun¹ü‘m1rŽ7ÕHû"*\Q”ãcŒÛ8”*’¶¯™“«mþ¨õ>Õ°òkiìKZZ­iZ¬¬ŒN&îk±+“ºXÙ¯Õ¾‡ëC¯¦
+B~U¡ØsÙëî†9vUÙ~½„Ú½{óR…`†~>Œ{¥¦£HCK÷J‰@>±”ö=ŒHÆÌ
+ŒYyôPr"ŒR—B°ž¯¡Â›ìÀp
+-èéniq¦$æ·qÀÍÜ´ñ	k7”ºÚÖË‹Fo)qµgÜ…aXÆ|ÀÛ_ÈÚôô÷¡+ôϯ®=ɽ3ëŒgîõôûñŒÿ íþ=Rœ!)B'	ÇúŒcðǏo ¼u‹¥ÖŸ®*væÁ´×hôŠ”Q“¶›}¶f:½Y®BGµ—Ï—– HȈÀ™Jž,óÊ`QÚN\yÔ#Î;?Ž"~.Ç3_›Ž
+^r0è™H™1>:N>@gE,%.he°ãŒ#è[2âÙy
+mjNB¹9æEꌑ2—Êjö鲁õ(•Ç¡Ú²“/òaLƒc‰qv>Z=£‘3vŠŸvÁ+m*Z-#ˆ\‹‰åÏ´§& +‡Ô ·m
+bA×%
+`ùH˜{ÿ [,¡B´ÐŠ’À³ÙçbÖèã”k,¶cÁ)æ>­FòדºXò :—~íÝn¹õõjMöv¸Ã
+÷b½Ìµ–³î0µz§ÑE“ŸWœ3SBŽWw20ìŠÚ¸OÆBÓ-!”¨“4å8¢ŸRP”§/KΐCªN\}÷\yÅ)Å­Jÿ ‡ÎŒç?†1ëãϏÆŒã?ž=<Lc1ŸYßé1ŒÆ}g¦wûdî5ž0¾^ãÄ„\Æó÷1úE8ë,JÄëq—„=ðœ#¸pCí°¤(8rãã:™I†TÚÀR_õ‰Ù´,GHd*Îí©Ç°«å/«8uøØͦ¹ó­O[8•!>™[Å”óq’Ž9òGHËAŽÜúqwfIrŒð¢¹—œr¦0à‘ ì¦ñþ\ƒ’ð oi>Ÿ¾HufÛOÄsÍš†ŠrVuMÕµg„5^nÉÅÈTZ²ØZN^°	XC¯Tªêu´- ¡Ä5ö¬žh©âØCÄ%€‡Ž¨ÓíLxvº<f'xŸŒ|Ís>âvþí
+Çíùpž]xF¿	×¾§ò¤^bãO7uÝL~ع§=ºl:wÓª½tÌ×3s¿…ácðÇå÷§þ>Šæ>/Âð¼ð¼/À/Âð¼ð¼/À5[·wjž9j˦ëÝ·ˆ
+s«õä;³ÖÛ…”ćhV½êÂ\|“4‘cbãB`™)iCB‹‹Éì6òÛκM¶J»ÂÎ)f«F@âì­ñc65Û í+,àuÍCÚDHO-T	2‡¤HÖ“!bל랶é]»¥ºù¦O›A¨ÔCÝ»‚8¾l÷;)ÒqtHIŸc¿),Ô "Œ°0
+А]&â¯$“âÁ\o	å^èó@òªeç¯/èq»VŸu¡èíQjm'Ñeäkõ®ùs¯¸ßÒZÂóZ­×ëó_Y_Y at YM™…‘sòA~Õç*åFÇ×»#Zìî#hók»‰k£¾M2ÍyªKƵj€”„töL›"æ
+G´[Cª9¤º‘ÝN£$ hS¥¼ ŽÙ¸·•áÎSꧽªNŸ~-:Ú±…g8¼%hÏâ…¥*Æ}Ø÷`¢]“u¥×勁¼ŸQœ5ã”yzûŽÛrËE—¬êjmB~›5X£Ø¬fÕì5x˜y¸,….Ëfe˜³Å¥eÖLiñß}§ÛÒºpžÙø”ãÓ	å.¬N1÷ýØÅ <c®~yÎÏà
+}¾Ó5u.ѱv-ž—E¥ÂHÙ-–»ˆÑ0Uø(‘œ2JRVD×0ç}çœB„«9ÏŒ=sg΋K§^åiã‹;jÓýnî)IŠÔ-‘c©,¶eg^°=0Ϲ‡ëä«ãᤓ^uÌå¾cÎqÏ{F½ÖÚ/€´	ò¡¿\ƒ™¸7Jc‹ÃÊЫò«… ÕŽCn|ë‚ž·?:skm¤?!E†m§ÞgBøj¼žýaé;î©Ú\ÿ Þ:Ò³°­¨Ù%ê=Ö ]D
+´<4­¶÷ )QíÏKËϳ\qi̼+5©¡£Ô ó&®@qçdäô]º1[Ÿ†ºrn”¢˜L¸t+-Ú›i@*VpKÑÆØȸÆ<K(R^`r#™h‰C,±~§·¸û#ãg|~Œß|x!l²Cp—í=ôÃÝõ•½4IU»Tpï>תÚu%ÃÌ‚ñ0óÑËAqÅ-ÖÍ:†ó5u§ 9ÖþìßÐzʝZß¼ichT¶T$éÕX)1{©Ød@r§ ª½-$iQñg–2£›3%>PÎRX´ßhÀèT˺Í'•:ÚåS—†qÇ0Ís_—Ùu•þí,6|pvèh÷]³–íˆÊrA­)!L½±‚dwi…pÏ
+ëœÙä©­´úÚÜCr[N”§>™øL
+ö
+aÏò\aÖÝNr•'9!ï#»éã·Q=zpB–MaíÙÉŸô,ÅOJ@Ώ\b±k÷ý‰QòÙ­@p…±3Â5†<pgË?~ê³”vËÏõ}Þ¨åÕV?Lå6s3ÏðÎq÷zŸÿ Ÿdè륟pUÉ~Ä{>Ýo×⿦tf¢ž˜©ÆX*Z±	®Â“—±E-ƒZðUñéÐñµ™B͝„±ÊJIåY@ÅV¢ùÛy8%È26O4”å'zÈDSm—ZųªZ±è-‚eû\RŒe•!ySµÌ2S©´¤D½…³·Þ¹» ãwg\~ß¼tž-a´gØWª…	yÖ¶æF`¢«V¸Ñ‰,t8±ÈdØ©X⎆š}¢£ÎqÄ8˜ó!y|õ/\”
+G,øz»[Z*nÖ¾ÙzêÍ2ýœy`” ‚kVHIÓ“™wêóÎG&ÄÙR%ÆO½‘äi€b™(·+gthQº)Ù‡F¢r·^Û)3.-xŽvãC„–Ø”©‡S—RÒ	ˆk=~5Õ¥Ågô¸ÁZoå3´í_Ì…§º¯ÞDqãcq?\¯oÔcnÕiß´5Ýw\Ý«rÄÉG‡5\°f³ÎäKÃKCœÌÅJXCãJR¢Ö"‚$ÎÓÑr»g¸ynYÝìÚz“¤õN›Õ•ýkVƒš™¶Ü
+”¶7}>ÒeÎÜp±2M-Y¨!á+™×çW%’ÒônFÎ'â½6ùà婦ՉiWµ w÷ÕÇ×í£ã›Ç¢0ï«dX¤Ô¼)Å#ÑÄå´6¬:§f¿’;ù5óKúã þÈÈø=ìïÌÙ¾¸6Ã9¤í-çÈjFCbÍI®Äf—T¬Ÿ#ÜxV+ŵÖ¬ÈCIFÊ]B»rÑ
+eN”ÙËxÎ5×ÎÝÊs¤Ês_p×FV"W¼0­·ÅÊDpþ<cà&F)T‹'.ú¹õ-Æ׳8k{±ógF}šùst§gÜûÖœªÚ{V‡­a5@ͳM °8W§a¬Îœ]QåX ÈèäÀÊ»=1å&ÉŽˆ…ˆˆ!iÌàSwTtAÔfž­	W®pCBÏ0.‚¹=—RckXKÃìá§Ê"c¹g•É™ÎTàä4KN æq˜ï¤Km%“mçnÙìZ@’ü3£ËÓŠ4vdf4½Új½a„Ró‚æÝŽ:È[hV2Ìk¶*³e9ù$Ù½S¹nsBóÇASy%Çv-úÚäÑ-Žëâ»73ò…™¬Yâõ""ÁZrÁÁ9—qB8“âN<¡àù¯º—ã/­<yä(`jzvð2éOØÖ‚¿D¢íµq¡¥¡,5hÃ
+)P­OÅÉJ‰1`Bz8°C`Éi?`~H=·8]sžZ:@òÞ®ÂLim™X÷:°‚—±|­\ÎFYh™êôqÑ–K3œúÐ0¶‰ÛϘÔfΩêýÅ¯²
+Ø5UÛh7;5:c5¼Ô~ ™9øùh|€<˜fWŒ$4o–•6;'®4¼/&!yËÈ>YQ(œlã—èúÎ^•W­ËI^¶MžÓyœ¹G±YjnC5°î9ÌÃDÇ@EEUëc
+ërrÒæ‚͈‹ÞwÚÃ%j>\>Dÿ tאúò¯­i›,
+÷PÎ=™mC<º³++q.aÆDÂâ2êšÌÿ —Ç®»<æš4Ì—°ÆZ,[ï{×`ä߈UÑgÞ«Rë(‘M’r²·ó"@'–¦]¹0¦GJ:,ˆat[£ÎÑÉîgüDÓuz#'aÈÛ÷­¨ø։ǼƒªÉÑ#"4Lg)¦%™‹%iÆL—i¬©ûtéãÍQEçÆò©ñS“Ú‚'Cn
+ŒOÙzÆíQ°-­.ÖŒ²á
+SŽŽša34Ù¹D°¶+.=/c°I)Î&DH²óË›¾_¯v_¶õ\q;Tiûì.±³¬¶U
+pêÝÎó«R“ )Rv 3(Ë
+OÆX•LÌs„´¯Œä„pb‡ã}†n‰É]i®üe†Ÿº5ÜÜ$‹8É KÁ\âL1§Z[n´ðåŒÓ­¸ËºÛˆÂÛZ”« x/Çåyp ÜWùKuçðÇÞ¦P¬þwãŸËîð¼ {¼Ë–™kWuœÖ"Qì«ìk¹¬Æ°Û„(pâëÚ~#c4Cïý>HúuH†ØîɘqM²ÏÔ)´‘ƒË•U£Óc£›¶Î¡ÚìoäE-mº]¯fÝì¦)Çõqoà™g²B}}?‡g	a¶Ò‘Öyši’tÞêù–Ùès,Y%µº(¥µ–[2>çèFåC¥K^\l#VdRÞõÆ&<…¥(Ç¢¿+†ÖŒÙÝ1q–<W̶®”ÚºÒÆÃ
+¸ÛBÈÆlËDôR1ò¸ê”ãÕKx²œÂ¾5Im·„°ÐZ¿`ÿ È;™ÿ Ùg}Úû?ô³üí<þÔÚ·ö¤?ÌìâqÚÏ\<õ±²Ëd¿îIL23ËR!ØÝ?o1¶Zt–ÝS8BÔŸÝa9ÎSû¬cÀŒ:UW¿¶n ¯ÓÓßÊ=V¯OÇÓÝh>ž¿Ÿ§¯€³7%Àû7p÷¨S!áè:_NUbÐþKBl5Ž'Æœ)CæBØq+SÙ[¿RI	ÆpÊXN;WVg;X<B©ñ>±ÄJ~Ï
+·e¸Y‹¼ÈìÙ:¬„á¶éÂeÕƒ"C§K´…ÆŠàÑ‘õï-ñJC8ÆOÏÍýA—¨öàm˜øæfqÿ T[!MaÂ!Æ*ÁH!ÃÃIJbB¤X¹B–ó‰j?*RZ[M7¾U"p”½fÈØ7øÏ»6•#;™i´m]­¯WYÌEJÍgmUÉ9’!™ˆ±‹ô¤}}xbãÜ)S¼­ó‚lTq›q²oƒ´:ü^öÓûTcNÜ•šzµ‹åVR´Í”H¢h‚°qõ礛˜e–/¼À™ÂJxKíӏ—uÙF{—ຢd¢Õ²§u¢\Ë
+b9í}ojUü-?~^-e–3~˜Ãä²Ë9Îâ³’¨áCÕ÷å×g¿ú¹¥?ü_Žï®:íà&ºAìMÂn(ë-…X}ò«wšµ]Jß_$ È$ˆ[
+Tx·È ²ÁyÐLeǃ$\VXyÄ(%Ýoó±vø}Ü¡Ú¿æÿ ÔÆýÞŸŸ§çøÿ »ÁUú4×êÞ£øZ/¡jKŽ”kòÙ÷Ž¼:NÒ
+{$³q‘}Q¯2ÔñÞÇ}7‚=†c¡ì$UÖÿ ;`?Ú‡k~^Ÿù˜ßËv?Ñà¶ÝPÿ 5ÿ ]ŸØ‹‹öR—à"/˜Î“
+|é››±“²êb¨u›tsŽ·•¸4µ?bT,‘ï0ãn²óqøÄŒ·ZwPä<É
++¯ˆøÏz(€»àsâøΫwď—˜uÆ\ø
+”¶TãyN~DyáÈo9ËoòØs
+mŧ$½óÞ¢(2ófJX‘™ÌÕ&«Ni÷r‡•¸lj…t6iS¤¾ÖdTbÚi
+ö)$½–†a÷Úï•ËJ¸»“ã‰Ê%Bj“·,_½þf3	_'9trXcáºØªêÃï6Œ§?p¯Œz„u!uþx02ÞÂëöO%„´•RßÀýo¥rd	]VúŠ,_L(qûC
+ þs””ðr
+'ÑB¯ÖVy#ÿ “g4¿®:쌏ˆ‰ç€þ5xýÝÿ ßš÷ĵòK;–xÉ͇½1Ÿ‡oQûÿ áé%z~8ǯ®3ùã×óÎ=qŸx]½wÉÅ^¥#bª¶ðd·#-Q	ªèš„˜ÑF³ãïŒ5’ùi|I1iãJ±cTLÔܱ¨ºù ‡$p?Í¿Û§!îÃq_Šš}²ÛïS§êí§¹nI‡Ó/Kfa‚’*°ÛL:^)¥ûÉ%$|£2Æp»Þ×®kö5É©a4™™½™¿ìÐ5a‘[茪GÙP×Հ̐XÍ´Z:GÀc¤pÐêš©I„øÁmÀ5k½	£)5è k°Ê¶ÙÈkǹb0v¦ïù%Ã¥&æŠÃ¤~û(†bÄqˆh¤ !°Øíë±îչɬµ<`\x#OÓ(7))J=Í±u*%¬²Ðªا%mÇ(êã„Qè	¦ŒoºV3ôèq>/Èÿ üjóãú¤?¿6‰cçqº…ÇNëœ+Y÷Ÿ³†ÚIE³I¨DÄ>zôÉb=WÁØy¤+ÚµÉ0ã‰ÏÆÚ’ÅyevFzÅfŒÇ‡Å´Ú‰cÈ—òœ¸Ë%8«!¤)(}b§R¬ŽÖPÿ Çù5ð»úã¿þÈÇx†HH`ÝüêŸq¬ªN;Yê(¡ù\Â[
+^Éo(æòÖ†œS¯C€¤­hRÚÃ*ÃjNw
+™þwä×ÂïëŽÿ û#â"yÿ ^|At‡÷æÂð/—þ	”ÿ gÿ Lï€=jãó]ÿ [ÚÀücø&Sýœoý3¾ õ©ÿ ÍwýlUÿ kð‰þýH_ù
+ø^oðpêBÿ ÈoÂð¿ó£ðr~mhN}T ~›tª7¢öĐ:¦!®õ‚å'¨RÓNã+ö»m­ÉKÂÿ µ²Š(ú¶È0d“Yž]>ö+½T[v&œä4MªÃŝË(
+œ£j,"V{Wlpƒn!Ëx÷Ì™xK,0ÑQW!Æ-]¯ÑÎF‘
+,QNDñãNr·Mß8ÿ ¿hÑ;Tì¨UÂZêòéu,”>hÀÌ±\`ø©ˆ™C•…šŒ(IHy`‚“,cDöƻڇ–ÏVðÏjÁ3¨¹3q6°È Úýb뮢æl5 •`Š†Ly¶è«u|;:™û[æh´U+êËC w™uÇ^Ô{›ó&ñ—üD·ð¯®Ñ¶ãÛœúÃ<}*jŸO£šCoY‡k0àHÌÎØ"Æz÷1
+#+a’œè–3½c]ÛÖ]ð^òqk«ò×@É͐…´ÖQ6ѬýºÚyIa¶žŠúÆ[Ž!¤´µåÇߪñ¿¥ü·\fã>’ºò^Ù²¦·n÷ØšGdVhV)úL]~¡¦Ù¼U¦k†ØkTæ秊–¹1Q âzBÎËI‹2@(ØØ’
+vCå¥~·jˆ³Âsxèù˜9Ð'"MclaणÏA¡Ê•ºUŒ81,´ëYÊsŒ)ÎSŸ{Þp¹lÜŠã6·æö©®=pâÛ31›T±ÖIïèË.Y’"Ïñ1…ºHºæÆ*O9
+5í½g²Ø
+}¨ø'Tœ¡ôÝQÝHïkLfÈ…š¸ñwwýŠ؁€CDYª3pK1ªþÅ©„Sãy‘LIHaY!}¿J‚ó'
+ÊËSDÃö[OM½1Ó¤ÏÑ ¿I˜ä±,üŒ Ÿjã$>zY Ç^)âŒø˜^p‚r•:¼‰vcå/áfÞ•¼oN6ì›/%܏Ÿ¸XètØý‰ªK(A“}º¥X›6R•õî0B];$|,Ö!뱂‘âÔýÛõ9¸ê€Ü+<ûã$yÊBcöfÓ¬ê[(ßR׈«lê–ßcÓ-’‡#qð;œ%yNVœgãFÁÊ
+gĽáy¹öq–D6eˍ*±Q«ËÛ¦ìV­ˆ.[¥Ôd!B„ˆ‰™™3描b?ÐÌØ¥/ýu3G¸JÕ1·]“Äk£fŒ€òöc1ê6-Å{2Þ	ø³þ=^ÿ g¿Ñïbv'å®éV#Dòü7_ä7©uÛe;^~«mÇîqoÅ‘;›foóO Å`„$ Rá)HT‹-¥Ä¼ÎíúÄ»Gi½„Ê-¶[ø¹…Èv°ÂòãN±^Ù–8!È÷çñQLG6C‰Nr„¸ê’Þ~4§Õ¶÷ÒP½[pٝ½¬âC¯pÍS¦HÞk@'¨*±ò²¯$ÛqÇ„|y¡jh†¡m/òîÙ¼¯ô]]7±y7Pæ=ðÿ Ö-òÁn›«^õLŠ_3w+2ddÍÂëPæÐLÓŽe¨¶ãÊiJS­ü©Ã9†®p5ùÉèjÚw¡µ10WÌš‹Ž¶Æ-¡rþEý-i/e¿“.|#^ÿ Og½¾ì|Õ}Øi®\ÇSx!Ä» ZÑn¬l
+͵jæ6m:ßn‹Ž:6¯I§Ë•gƒ¯âZFbzl'>qPlÃcF›nò‰uƒjã'¯¼ÝÝ53ë;/“±ñz®z=@MA踢+‰Õú4&v•ƒ K°)¡&Wju ¡Í!Çø.¦¼ª¼0×8×\–äês–S¯GDÛëzæÍL¦êXãÞ÷Ê­UDÏۍ¾¨'2™
+^lZÁ™mäNVf}±³Á‡1ØVZQYhq‡a´´Ë2„¶Ë,´Œa
+´ÓiJBq„¡)ÂSŒcÇ€êh'÷ëí©ÌÈFëµ,ZrŒ¥¤	1f©Š±ÌçÑÇì!ùq8Çø´¥¬ç9˘ô—ÞIBÄ3Ž<ä†mìdñö¦¹|ò…ã(R¡>8|ŠJZ^xQìC™[ycÕÜ6—[“ºž¥»~æÍbrW–ÑEEV`jâé<l””I6Éi™©ÇäžÛTl2d¶fãÂ[-G妀ÕO¸ë‹KÏÑoQ?îýÿ ­ƒäë›ú¡½uätyZ:ÕÚõ†‡g±CÅØÙÛ¶T}¢a©À
+)xŒq×UˆÖÐàםš~×ÆŽorsPZC6:ŬwæĈB‰Â™xÀ‚¶È6;‰mŒ¨Iȇ#æ£JCM¤O¦Ð„8œx#G<Û=jÙ¸ÃNžäíæ멹Z¥ÂÇß5Ë:ÎílnÝoŒ!ËÈÐlhiJÞ"gR at 3l–«‘Ñì€B‘^-n‡}q«°XË-#®S‘”ŠQ±Ý+õ ­µíŸ]ªFáq‘·Z›ó§°FÇŠ˜x;lm„"D‹S`ÍGYŒ‚'#½|ùu*\½ß_«›)쪴H—žÍS äääLTˆ#!° óÇ-č.T=€x÷Ò‡]†‘G¹…]îóŸ[‡·=“)Íèê͇º†ÛÆm!aS8”\´ü=šû"l“ááøÃíÓÀ¹9m
+,ò„¨ÅÈÑ!~¢Sê7%{žG™Ò‡»öZKcd9jצIuhsêÒü$ŽÞ6Ù^KIÆçŒQ	q—Vµ´6Zq”¡ä½nݲt[ÇYîµøáÂÎ;Ùã­JnönaLþŠ#cK[å%i·0l2¶õd¨™+i4ñO"ÀôªÚPQ431ÃG/wVö¶ùiu°Är9­­XÛÚÊF—f¨™¨SMu¢¡d³@ØAžgeYÖÙ1«J9À\‹psDš!n­ƒMçv•aÁèU!Ü•#µv”‹Na)ø<UZ¶Á	q~ü/­ÉQòÊÚÒ¤6B–ãyKHz+ùÿ ^{ÿ At‡÷æÂñ|½òu%+Û–ÎâÖ³'’KÐU½Q_Úv&[Sçe=?1kr¦ËÄ™ïÙ”&Fn4:«,G·†ŠuµÉI:¢r‡Ãl¿E=1;Ô×2·ÐÂrSõízÒ€C˜+úØ€Ž
+ËY›E’ÚÙ÷–Ýa¡Í< X‰Qº1ˆ8|±	
+L^æÇ­Rmö"Úyñ`«3²ä°>õ±Qo4ÏȶÛË«m¥%¼-Ä#ßœ{–”ç× |¡Í‰_Ûµ+øu`Ãl8Iƒ:ëꎆµ6•»–ÚVJÖÞ2¿n2´úúàè|’‹”œãÖò„„™ÅzfcRì(¨™õäŠ`ä¤j’¡…/>)ã“KÍ™‘”Žtœ5–[<5-$7€É?' 1T'¶v;5÷®·qÄ>x¬ÃiZò#r˜ëÿ Â!̧ʾ©ú5zú|ŸO_f ŠŠÂ£cՏÁ@ˆ¬z~™¼ãÓýþ†çFfk:[RæÉ1›
+‡õoJûv}C8fåñ\ŽÄ”¶DtÉEû@Ì<_ÓºyÎ1‡~%˜J“—–¼ÿÙ
\ No newline at end of file

Added: trunk/gforge_base/evolvisforge/plugins.test/scmsvn/www/viewcvs/icons/small/dir.gif
===================================================================
--- trunk/gforge_base/evolvisforge/plugins.test/scmsvn/www/viewcvs/icons/small/dir.gif	                        (rev 0)
+++ trunk/gforge_base/evolvisforge/plugins.test/scmsvn/www/viewcvs/icons/small/dir.gif	2010-02-26 00:19:01 UTC (rev 4850)
@@ -0,0 +1,2 @@
+GIF89a  ¢ÿ ÿÞ­ÿÜ®ÀÀÀ¸ }WK;+%      !ù   ,       I(b¦þΔ1˜²Ð€2«v$GQA‘¬y6#Ûvð"ß_­ÝdE輞á·
+út„ïø`$eÌÌP	8 —©õŠ]¿œn„$  ;
\ No newline at end of file

Added: trunk/gforge_base/evolvisforge/plugins.test/scmsvn/www/viewcvs/icons/small/text.gif
===================================================================
--- trunk/gforge_base/evolvisforge/plugins.test/scmsvn/www/viewcvs/icons/small/text.gif	                        (rev 0)
+++ trunk/gforge_base/evolvisforge/plugins.test/scmsvn/www/viewcvs/icons/small/text.gif	2010-02-26 00:19:01 UTC (rev 4850)
@@ -0,0 +1 @@
+GIF89a  ¢ÿ ÿÿÿ999kkkŒŒŒÀÀÀÎÎÎççç   !ù   ,       EHºÜ¾ã@k1±ÍJ'Ö\WD¦LAšjÀxFlPŠð²meØ,ÇÞ	×Z		¾ßìˆ*oJ€I,No!α$èz½®E ;
\ No newline at end of file

Added: trunk/gforge_base/evolvisforge/plugins.test/scmsvn/www/viewcvs/images/chalk.jpg
===================================================================
--- trunk/gforge_base/evolvisforge/plugins.test/scmsvn/www/viewcvs/images/chalk.jpg	                        (rev 0)
+++ trunk/gforge_base/evolvisforge/plugins.test/scmsvn/www/viewcvs/images/chalk.jpg	2010-02-26 00:19:01 UTC (rev 4850)
@@ -0,0 +1,9 @@
+ÿØÿà JFIF      ÿÛ C 		
+
+ $.' ",#(7),01444'9=82<.342ÿÛ C			
+
+2!!22222222222222222222222222222222222222222222222222ÿÀ  ` `" ÿÄ               ÿÄ &         !"1AQ2RaqBbÿÄ                ÿÄ                 ÿÚ   ? ö•¢>á^å„]Q5ðŠ	T¯«²,œT at O¦‰Ó°O©qžjÓzh‰‚î*¸‰U­~òbÞ¬›9顚݁0ž£I¥"(®Uþ€”¤Š³™‘9»‹N±Ì€ºTQ)ü¨JilZKw–n› IMËÑ©s†œ
+¾Ã½Ò…gœ ^¾$¹ßø.eà( ’â8[p4œ·–
+HtªSZI½š¦­È&î6§y’ߐu»ÛPŽ7#;±Qò5EöÀ6÷HÑC¹q€ó#¥»Ë%)«pB†ª°/6àÍÁòj›x„|™u+)Û²ªê#£–ª;Wø›º®E()o %>Ù);ImÆTE%§8_QðdêÍ[QŽ"F h+«ÜiœH}7pŸ#²ì°¾ØЗÔrÀ
+$ñq¥c%«`pï* º“»b`š°Z at +û
+YfSMH¸RÚ¹S×±›éÒ&µŠ#ݼ°ª¢’|†7lÔyÌ Uøä)ng/ 4éˆjÕî«&Q«.Æ÷•ÓeM¨á@iËÚ£ªŒE[€,ï/ —ù'úÆM2I¼°›QæöFN¼€×QÜSUÜ…AéÿÙ
\ No newline at end of file

Added: trunk/gforge_base/evolvisforge/plugins.test/scmsvn/www/viewcvs/images/cvsgraph_16x16.png
===================================================================
--- trunk/gforge_base/evolvisforge/plugins.test/scmsvn/www/viewcvs/images/cvsgraph_16x16.png	                        (rev 0)
+++ trunk/gforge_base/evolvisforge/plugins.test/scmsvn/www/viewcvs/images/cvsgraph_16x16.png	2010-02-26 00:19:01 UTC (rev 4850)
@@ -0,0 +1,5 @@
+‰PNG
+
+   
+IHDR         óÿa   €IDATxœÅ;€ D³§ dr(è¡2”\#V F~£…ÛÁ°<¤(ô%ŽˆÈVRôöë5RòU«QT#‡\`çÛYJQàzÕV” ;Ú~ÕµDXí3VŒªŽxùÂHV‹çF[«îJ
+f²z|Ybÿ'1çµÄœÿ%ž%Pg=%zÆð    IEND®B`‚
\ No newline at end of file

Added: trunk/gforge_base/evolvisforge/plugins.test/scmsvn/www/viewcvs/images/cvsgraph_32x32.png
===================================================================
--- trunk/gforge_base/evolvisforge/plugins.test/scmsvn/www/viewcvs/images/cvsgraph_32x32.png	                        (rev 0)
+++ trunk/gforge_base/evolvisforge/plugins.test/scmsvn/www/viewcvs/images/cvsgraph_32x32.png	2010-02-26 00:19:01 UTC (rev 4850)
@@ -0,0 +1,7 @@
+‰PNG
+
+   
+IHDR           szzô   ÚIDATxœíWA
+Ä ŒK_áQ|Ô>±
+ý†{ØÊVq‘ÆôС0‡$C‚&¶üaO­1 Y"   UŒèÓ_¼äŸ¸¹€¢+R^ÃÔ.°Î'éÆ+Â!"µÎ?ËÅ€¿XçiƒÏär–É&ŒM¯$³\ƽ\@Ú ÇOrl̺ä_\Ù„
+ä ÙW–€pÁŽ%ÿöc‰èÅ©7¡º –FSΉ{\ÀšˆH€5-q…«'&õg at jqÙè+'l.ê%PÀ+Àæ¶áÕø “¤³ùã{§    IEND®B`‚
\ No newline at end of file

Added: trunk/gforge_base/evolvisforge/plugins.test/scmsvn/www/viewcvs/images/down.png
===================================================================
--- trunk/gforge_base/evolvisforge/plugins.test/scmsvn/www/viewcvs/images/down.png	                        (rev 0)
+++ trunk/gforge_base/evolvisforge/plugins.test/scmsvn/www/viewcvs/images/down.png	2010-02-26 00:19:01 UTC (rev 4850)
@@ -0,0 +1,6 @@
+‰PNG
+
+   
+IHDR   
+   
+   H%v?   PLTE     âÇà   tRNS @æØf   bKGD ˆH   	pHYs    ÒÝ~ü   tIMEÔ	#èe"   IDATxÚc`À öä0ð70°300AÅ +q—‡Ž™    IEND®B`‚
\ No newline at end of file

Added: trunk/gforge_base/evolvisforge/plugins.test/scmsvn/www/viewcvs/images/logo.png
===================================================================
--- trunk/gforge_base/evolvisforge/plugins.test/scmsvn/www/viewcvs/images/logo.png	                        (rev 0)
+++ trunk/gforge_base/evolvisforge/plugins.test/scmsvn/www/viewcvs/images/logo.png	2010-02-26 00:19:01 UTC (rev 4850)
@@ -0,0 +1,42 @@
+‰PNG
+
+   
+IHDR   €   0   Ùôr¾   	pHYs    ÒÝ~ü  IDATxœíœyœU™÷¿§ê.½$餳tC!¦;  ŠI:8¾ï¨3.䣃Û+@æãŠ3[ÀmtPf²È⌳ˆCºCˆ‚,Æt'$„5éÛûv÷ªó¼œªºU÷Þî$Š(:çó©®êS眪:¿ß³œ§žºêàþçùßò§[b¿ïx-Ëñ_;("@›½w¬D at 4àíE‡ÎéPöú–ê•Již¿õ|õ{}È׸¨7Š˜{è ``@³‡ö* ÀD ûõnЦ‚âV©+¯wM_4Ï÷o’üÁàØ[AÊk%º¯F‚0à”ƒ.8%ÀK’^\¿Þ­R®s«´u«ôuIØŠ]ÿtñëBŽù¿[ öå„×û½`έÊCR™-r«
+Ê™H<àå’¯£{ÊA—qŽ’¡¸Õ%¿tt˜,ÕÛíý׏¿¦„˜ÿñ»Åšà¼&JŠ×• sn‹‰ÚÛàýûQ•ÂÏ‹°ôWQû`}„T~ ªIz¹”Wx0õ$ðûé*u~;]ê÷ÜúÏþF„8ð~y¾L#üNÀyߊ‹£}€-°¢,J —Bd(	«ü*ö>°åžäË8ê]" —À±Ê VA[%* N´Báz÷jö‚‹²”7ˆ(РBêL eº¬ÎÿÇ\…°pÕ·1»6¬™<U$àë*u¯¹˜ÿ­˜´ežXYà–'õácC
+	ˆ ¥)	?sØÞ›½*SóDl½[fëÝ2Ð'–ê€ziõë"–üRßʱÝ2mQÒ ãã_;n+vn¼.˜ø£)åÒ¯¡˜s[L|бl|Ù&øÇ>Âûjàû%ªþe\OƒØ!éuÁ“n#éþ/Õâ]ßHué2ªìÞÄ¥K÷f$:äÒDŒ™¿€”òM˜…ødVÁÅ38J,BÑu9éC׋X	ìÉÍ ’G…O5é‡×€ snµeƒeò·= í’ˆÔ{&¡Šº¯^TdñöÅ
+®CuVTª´QÙFA{ [."Uš¥r@% FÈU¡c¤PÓÇ*Ý«ÿ܁ù²å9³(cz°<’xmÅ?6¢t=¸ÛNPl8áˆT?Œ¿øpÊ·EF*öÐv|±*É`&Ç”¦É°äM°ýUHåM„}ˆ@Ê}"¸(íÛiß"ûR­Ã6¸^Pe€fG	‹ŸLó´$J4Ï÷Ó3F”2 #F«`…HaîKTàçXF”û>R¸4VÉ':õ”ù4Ïœ
+¢Ùò³'@)”“#Ñ×…Ø50yn¬nÜ©Oúá7ð†šN×övYºv”ÍÚÕ±âÔJ~mÚ
+Wþ‡9þájX2À…w…H ¡K©–ðìÔ³®b§«Ù[]êØ{íÒÔcÕ»šYýî9 tî"5˜£e~©Á,W÷IÐ.kV¶°þg¸ùÓFóôúqoñ’ëîfÇs¯°ìí'rÃÕï«Ú挮îsåûÏå¿|'M³ÙòðÓ€ðîwžÁï}€»ïý)h‡;nÿ;¾ùÍaËÖíUÕÕl0½GJ€¹7eeÖÔ$­óêYÞ:…¶–IÁ¹CC.7ýÏ(‡F4]¯¸€MËܳ§Æ¸¦-Éìsý;Ÿîú¥&5b8¹ë‹ñ`Œ+~¬iߍÒuÀuY‰ÅÀ:BEU¨Š8så–¸qÄü6Ë[¸åÒƒ¡×ü`'›Ÿ>„Ñ.7â4ZN˜Jj Kë‚é,YyËΚGSc-k.>3r[kïÚJªw„ÛâÒÔXGËÂcXzöÉ,;g ]»_âÖïÿ„»€¸Üð…Õ,=÷4ºžÙÏu_½ÞÞ~š™Ó§ð¹O­dñ¢€ÐÔ4ƒ·ùϤ9H¬ŽâÌVÏQQjÂ`ÐÍì±7¤Ë"5ìÐÑ5Æö—òt½”§ý節ã૲®>‹.eÑvÊf/ŽsŏÚŸq —†l\‡M;ç²âÍæ¶?;
+ŤdÀ´IÖÁ”iP[w$8š“ÕßrÉ|–ŸÖü¿æŽgؼ­Ç,Gµ†b‘«×>º¿[Në‚ét÷§‘‘4îK±ìÌãh]ØôßpßPtÉpéÉÐ} )8,;g›·î亯oÇEòšÅ‹æ²ôÜÓ ¸öºÐÛ7ˆ±„žÔ×]÷îÿ¯oÐÔ4ƒTª7oc)PJƒ3Fü¥_Pœ{6pøHàaguî?'/pd„ža—CC³§šîm-uÐû*ŒC!çI¯MÓ¼fV,>…M;ò´?=¶
+C}ÐƆ¸òsOÑþ§shÐ!uÈ‚©³Lÿî0˜‚ú8ö$ˆ' nOlBkÿÀÉò—‹áøAPïG)=ªófFÀ_·å6oëE´kÈ™Ë"£#ÈØ(?{ŽÖgÑõ\/’/x C×îµ€Mÿý4Šˆãé´à¢¿<‹îÞanýÎýà€ä]tÆáÊÏ”Ìá}ýXIPµÆ½ÐyÎÁµW}›;7|…;ö"ŽÂÛót,Ђµç	ôÉo;¼;‘sÿ¾_Jžu4ºÖõR.Ò¶ù˜if†û¡ïôâ£iàÆû‚­ŒJOÖ@,n4Áè í?~’®Ý}¨;nÆFÌ8#ý3„O´#¶ß¨v±ÿ¡]E$Ð'ˆ9n[ËÕïŸ~ý–—
+øÅ"Œ¢ûúЩ20Èöm/ÀŸëAMªCÕ&PÚ¥³óÅȳš¦_µà é<:§¥u.­‹Žeã¿ýœžþa°ÄÌ‘­h9õø oË[æC̐V7c¡sOӝJõa%5–í"Ü|'›DãÄö>:!ø0˜ûµn#ù€Y6)Ï73RØùB&b–œ6‡öÔ26ÙQZÎ^Ì%mMÜðý¤ŠµŒ6mgÍ„\=Œ6ÂÔN†ú)´?kA,‰£ö‹9¨©§åͳXñöZšWÛwCûž’$·
+
++í/»¤†
+!š&Ã’cãøñ‚γ °úœé€æ–ÿ«ß÷¦Ètlë%5˜3à§G‘Þ^dp ÉçQÉv<×c@ΡêkÀ±Ak:·ˆŒÓzê6Ô'Q¹’´pËm—еû%6þø1¬¸%¨¨DTË­[÷y6ÞÛÁƒ=Iç“Ï£sæQí¤fË–Çyè¡_`Å‹F=ˆBãˆXˆmtʲKd÷æ;Î8î«/‹RV…Ì)-Þ
+EH
+"çZæ×Ñ^W5u`Ù|þêó94ä°î§/ÀÌ9Þ:Ëᶏ4 uÀŒ ï¦].íûó5õÐtMs›¹öâãX±8Ρaá®'4KæÀm°Ø´K¸òG9Ím5‰ò²òöAºò(Ñ´-ªçÚ÷N
+Î-¾f/kþ|:=o Ý96<Üͬ†­ÇGÇêØÖN²i¤¿@2ˆÛ¨Iµ¨É“èxâ%6?õ¢	Ù’Œ‘ꌌ³xálTÂF%c¨´bõ§WÐ<³k¾°K‰žÙ+Ñt=s ¢.úðr.úðrR©~6ܹ‰u··£,áo¯[–cL™íbÅÁ.‚8 ”‹R.(aѲ‹e×æ
+UIPaN¼þ€ CªT;žzu<Uê Ä¡c{ô!g7سQ‰+VžÇ’ùõ\ù•ŸA>Nt
+Y}zW|o_¤oûŽ<dG`t ²#4MñÿÏŠÅf•pá?gX÷x–ögéV,²h™‘…á^}öy®Xׯkÿ(*;éa–[âx{çâèÌuKæÕB.CëÜšŠÉéxòUã“Œ#CC|qQ‰Ö¤:Tmœk¾³Õ¬æÅ8xÊV¨DŒŽ­Ïã4Ϙl¤;fÑ<·‘U«ÎeýÝ[éÚv qÝ@;‰£‘‚ˆõ[ªaESÓt®ºö":¿•¥Ë߆
+ÚÓ~–‹Š9Øñ"–형hB늋«ÚÐ
+‹Å l³w	´ºèí”.Ò=XÒ­ÇÕ-‘àêOžÉö}£t>¶•EåÓ¨b•…¡MSíÈ5·?7½/Á«{áåg¹mU#³=•Ãý£¤³(7Oë1¥Æìø(|Õ½Ÿ‹KaÑöÎ1C¦þƒpðEÚZKR½ýùa(æØðà+´oë7•Žƒô÷°|É´È=uäøÙ2<„¤ÇÀuP¶ªMBMÜÄ}(Å”/Å	›TïHd¼–“AÙ°úKižÙÀ]ßí@ŠŽYUh×ø9yÉ»l~ài>ÿÅïW%!Ân¸ùsœºð$tÆFçm¤è9–‹/`Åó`•ÈåUÇŠà]ßØ/\0!à•ö‰P¶®Æ‚¾ÍSã`	«W.aö´W|r=òƒ|
+íGôsÚI%•¼ýÅ<=©aÔH?ªç%>zÁl–Ì+ÚñTÊÉÑT›ã’³M´ëАCû}¢F ¡e^m‰ O¥PÙ1Ôèmo›yØ͏ìCó㪯v˜ö;a°×“àRéÚۇʦ!3†dÒÆ ¡j“(Ûä+˜9	Å” âŠ{^‚6s
+M³Xõás¸ùÖÿ¤ûå>C>Ç#@Áeæ´)&R˜Ð<øðS¼÷ƒkøÆ?ÞC×νUÁ»òºUÇÓ	œL7oƒhl»€ePÊÁR%§wÙ…—Whö…@7$(¡è¡ˆrÍÖ¹82Øê¥Í\»rwÝ¿ŸÔ‹ÝfÙ”O£ŠiTz5ÜÅm§—ÐÞ5b¼ÜºZ°mç”±í2 ¬>«†‡®;ÆÔíOsáÇîA9yTm=­o9ŽÙÓJ¥ŽŸ¨IÐvÞ¼ ¾{ OªwÔ<G.CS™‹í?ßeÀ•²¹ä²H6…¸žö±-cÏcÊ"EÍ#â¢bе÷`d¸¥gŸÌM_ýݽC¬ûv;ˆ Ž€ãBÑAò-‹ç±½ëv¬8X–¦§§Ÿ»ï{€Ë.ÿ
+»ìKlÜxdÌ–Ö“Ñ…n6Ž“­ÁÉÖâbˆå+!M_o_‰"N SÌ£$ô×ÛŒ3ac^^”Þè¥3QœßL÷@ž›nüã¹ä2¨ô(b¥‘Ñ!ÚVœéÓµÌ0â6b)–œZY_ÇC_;…í/d¸kK7›6í¢kËS€ÍÇÀ¤:ÚÎ*­··ï7BÓ4«Ž¶3fçÚÙ<‚S@²c´]p"Ïõ“z¥«y{ûX~æ1!ª˜GòYOúµ™‹˜e¤_\núìR6ÿòy¶<¾7˜d…‹(¡w(*‹OzÍ3Xý±oš…”h¼à¢@çZZæÐÜ<…žþ>‚h¥5;ŸÙCׯ÷°ã×ÏqÃ-W†îD¢mÄ\Jd[”Hà:Q-e`Z­•tOÚq‹à@PþæØüTTÍ5OK²¾ã *f‚6âzôÈ õ¢Ü"mç´ï,°ãÀ ­ÇƸúÃóPùtd¼«þi‹?ó«¾¾›¿ñ0]ÿ
+²ˆ)TÌF²´Î/¦}ë¨xÄaõó"cuíé(f!3Êê÷¿™ÿá'¨¸JÆéxâ¥Hû–…3è®g§E‚wZàrÑ{NeÙÛç³cÏ+­)n1ð™üÅ®ÒÜÌl k÷‹ìرßÜZÐ9q‘¢¦¹Éø!ï>ÿt: ß8‡‚R.?{¨´¶ßѹ;‘DzŠY,Üb·˜ðÒ$¢qÉ“*_Eðô—ߢ”öƒî™·PÚ<tdƒþû†XÿÓ=¨¸
+¶2Á—\ÆDÿÆFPq‹Öù“ƒöÛúhš,¬ýëùtíéA2£Æù
+Š6ñ€ÌŒB&Íêÿw±™¹4÷±dþ” uïp•ŒÑö–FV·yPea¼âÜk¿´œ®=Ýt>¶Ç,ébŠÞÁQÖ?°»ØôzV}ðt/øÎGÐ,?wk>z6kï|”ž¾á’‰tó(§ù<Št÷DWJŸ¿~ÊòrDG䔿y> ~°YÓPÚñÚnN«™5»!oKÇ#ÄkÓØ59¬XÁhR­×òVÑt³_üä`e$Ð
+I¹ÁÍ’¯Ü<Ê-€ÎÓµo èzó=]ÆöÄ”—P¡¡C2c€µIšKË­æ©1Ö_q*]û†èx`;äÒÜuï¶àüêeÇš•CnŒ¦Æ$·þàR–´c¨˜5ËËPY³êÍÜò©Ó¸åò%¬¹ñgt÷—LÔòwÌeÙ[g±þï—Ó²p:7~é>”¥<²
+è"kïø9í/÷×g±ú’³ižk‚FÍs¦qõ5ÎM×¼—͏=ËòdT8Š$Cf!W`ç®RDpã¿?Bo_ÊÒ(¥MdÐÕPÐàh¬˜KÓ¬FR)³:¹ã{_fÖŒptA¡óŠ™ÜñÏ·ð7?½ïÅNdˆ%G±”U,Å"YGÞV¥T}8ÿ³í¥ìžà¾ò|ƒP2‡²¸råi¬Zq2ë7=Ç­÷v¡]Ž B†GM·úzÔ¬YX3¹ê’3X½|~p­uûYû¯¿B<ˆîííp퍫Xýæ-Y÷@–®½´,h¤ã‘½ÜøÅaMŸŽš:jjXsé[Y½bA0^÷@–[ÖýŠöûcV½ÍÆ{þ&òŠ¶ã±Üøå§{ÿATMkÆ4¬Æ)([!é,’ÍÑrÚq¬¹ü]´.l®˜›îÞn½}3[~ù,ÄÄ3ç¸É‘tq4VEË’yÜù­Ïêäÿ\üÄu‘œ‹3äàŽipÊÖØuš%ï˜Ç
+_ÿ—}‰òÃïá•ÿ—]{)DXºüRÝ=ܳñ߸gýFí»®‰€ç“²S×ÂŽ§I$û±íLعuSÕ@PU,ºâÉ;=œÂ"ÁÌÆI´žhœ¨ž¡,"‚ŒdЇRè¡Q”e¡¦5`Íš‰š<	‰Çi9a:͍utîë'Õ—AÆÆЯD‡M²Ã”ɨIõ´­h˜‰lºïqdhØ8a3f`Íh„šh¡åø©4Ϩ§{8ÇŽ}ýÈÈúÕnôð0ÊŽ±ââ?ƒXœÎí/Ò½÷d,ƒT2Õ8kJ­QÉÙ¼YÆÕ× jb€fé'`ó¶ÿâYR©!¬)5ؓ㨤e¦D»HÞAg
+HÁEÅVÂŠÃÒóZIõ°s×~C”œÆÕ¸#‚h°.±IšcæN¡§¿7”Úæ‚«9ÿgãmÄUtmÛCßAìD¥
+€ÉM×ÂÉ×áäë@„Xb˜xl¥²(4ñ˜Å¯~àÈ	 pâ§þSt()z4³×?gþm&R§úÑ#iˆÇ±f6bMk€d¥Âoõ¢]d4ƒ>؃{Á“ÚT]-ª¾5¹ÞphÝ?Å"ª¾«q
+Ô$ÍkV§±ª®Æ¬&ÆÒ能Ȱ‰S¨Ú$ª&1“$Ù<’É™Œ°:ïœ2)[V]U7ŽšÊq‘lw8‹¤æm^LaÕÅP	e¸b^ô8ÚdÇÕ)¬ ´÷ÆѼPí"EwÜ1@ƒ]ëbױ⎱á¡DUq5nÎÆÉ&À±Àr±ì–UÀ²Íj-h'†[L¢µmçˆÅ†±­4PÄVB×Ï<ú|€½ÿø>µðòyÄ¨Pát,ŸAz– pPÉV}
+$X5¶YJºáô(,‡”¥¡.Žvj×EÅ-3¹µ6*®<3’@9uèL¤ˆŒ¡òY“æeÛ(ÛB)”QJ .vfm0¬d·‘¤BÇÉ;à:HQÌýÖØXq Ç$|ŠF”‹Jöd‰Çˆã"¹"Å$‡z¯É­„^ÙÞª¡ü«#m2–-[¸h¬¤	Û–~&ÚDñ,4vLP¶	5‹VÞKÏ8f‰â*1;m§±UÄË„ù ‡ÍZø‰»EQiWå¤i ÁHDÎ{÷¡jHÌFY^{siÀw¬=û™Ë’ÄmH&PɘÉ!@{RV4áÒBÑ\ζŒo[&BçEçŒ=. Ù‚!€­LðÆ[àz ¼l [ÒÅØ’JIzÅ×:f¹&E?ÿ@Œ°@Å4Êö€‡ð~L^´±ÙEAJi¬˜ƒò_蔥§‹Ö¥X?†<æ´2Þ¾×ÎØù"–* TÁ¤âµì|ôþÃæÓqJ؉—Ý%Éé¯b¼:í']hL€m¡T|UN/KÓõúY^Š‹§1(}ñ+:Ôο¬*ÝŽ`^…Š‰²ùŸá}’ä ¸Þæ/ñ,É{ ý31$óöN)Á¨?Dé8’àK¶Fio\UJi/ÿÍ×&—Á)Ý—öY´!—9_<~köédfœLœxT 8ñÒ;$4¨Ð‡eõÖÀ€_‘÷¯J‡þ”™9%à)ë…ÿ]€˜cäÔCù·ƒ$øÀz™@þ÷º”=ä¯Íñmv•OÎ"¤ð?ðˆ´7×>C4€ï¸Á8¢]Ó6ø²)äüU¤¸—6ß«÷‰ä÷±tÍ²>P±¶ŸˆG•¾÷_.S '~ô{â­Ê	à+6ågׇì~Rì›ã.~S‰VˆÿÇËÝ—Êcèð^Eöºì¼/ýæ¸ò·ü6:$¥¡L£qÉ`öVp9ì—ÊÑÈž¯9Ä®%}ʪ@ÉMù­>
+[¸ê[^ÂRÔ3ôW#fµºj¯²%|hþŽ°<÷o"PF Òã’aœß¨ü¹DUA„²~e$Ÿ%éO·\~D §~«/ƒü/Y^´V€²ˆW€®"»°\——°úï"à—“¡
+ÂíT…f(× %”Ô{u³ý!Š¨P2øýܨf(ï6„/§[>	½ÄWÌíkùqèÉÞPú7Ð
+þ±·¯*ù‡uVCE*Cà«ªà‡ÇÑɏzí ½1*%¿Ô7*õQpË	T	ºRB×ã[ƒÉ:šD5ÕSÄg¿pÒ‡®,v%èaé?ðýâK²w©¯f|€	Ž«›*„K~ù/„µCÊA­ôª“¥2{Ç/·N8IGJ„jfàuùˆEü¢h-€K…¨ø'hY~¨Ê‡	À‡ÍE™ÔOà™)(¯‹CUAGÏùĺô¨$ãHHPM¼î?óŽK®—áQ~33PþŒ•& °ªFŒ
+3PV YÍD	 ªi‡‰ 8‹á>.SØÚ~øÀÍDåHHP®þ ~$êÔ÷]!Zë#l-‘]¥	ðëÆ?ì'”ƒë÷­&ù¡¶U€¯n
+Âê¾To)è|ìáß
+ì‰ÊDD(רVÞúWŸ“t&;ÎY)ÓaðBûˆI(#‡Y*VúÕ4@)HT©¢Ò/ÔÖÔðäCÕßÄý.Ë‚ß-ã9~áòK€p©ö“g-ï¹Tש¢	¢d¨ˆ@À~ŸJÐÇ÷J€Çl‹í¶¿î ¿Vå
+A 0$¨Æ棩Ÿ¨­|8‰ùc+¿mᏪü©o ìÿþJ5ÿ7øe¬Ã•#ýEÍ?Öò†1UÕ¯eùSÞ`øßòÚ—ÿÏÃê*6ª    IEND®B`‚
\ No newline at end of file

Added: trunk/gforge_base/evolvisforge/plugins.test/scmsvn/www/viewcvs/images/up.png
===================================================================
--- trunk/gforge_base/evolvisforge/plugins.test/scmsvn/www/viewcvs/images/up.png	                        (rev 0)
+++ trunk/gforge_base/evolvisforge/plugins.test/scmsvn/www/viewcvs/images/up.png	2010-02-26 00:19:01 UTC (rev 4850)
@@ -0,0 +1,7 @@
+‰PNG
+
+   
+IHDR   
+   
+   H%v?   PLTE     âÇà   tRNS @æØf   bKGD ˆH   	pHYs    ÒÝ~ü   tIMEÔ2›Î‘   IDATxÚc`À Lìü
+òì@Ä —Gb2Þ    IEND®B`‚
\ No newline at end of file

Added: trunk/gforge_base/evolvisforge/plugins.test/scmsvn/www/viewcvs/index.html
===================================================================
--- trunk/gforge_base/evolvisforge/plugins.test/scmsvn/www/viewcvs/index.html	                        (rev 0)
+++ trunk/gforge_base/evolvisforge/plugins.test/scmsvn/www/viewcvs/index.html	2010-02-26 00:19:01 UTC (rev 4850)
@@ -0,0 +1,356 @@
+<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
+<html>
+  <head>
+    <title>ViewCVS: Viewing CVS Repositories</title>
+  </head>
+<!-- Editors: Please keep all links to external sites in italics. -->
+<body background="images/chalk.jpg">
+  <table width="100&#37;" cellspacing=5>
+    <tr>
+      <td width="1%"><img border=0 src="images/logo.png"></td>
+      <td>
+	<h1>ViewCVS: Viewing CVS Repositories</h1>
+      </td>
+      <td align=center valign=top bgcolor="white" width="1%">
+	<b>Quickstart:</b>
+	<a href="viewcvs-0.9.2.tar.gz">download</a>
+      </td>
+      <td width="1%"><a href="http://sourceforge.net/"><img border=0
+	    src="http://sourceforge.net/sflogo.php?group_id=18760&type=1"></a><br><a href="http://sourceforge.net/projects/viewcvs/">ViewCVS&nbsp;project&nbsp;page</a>
+      </td>
+    </tr>
+    <tr><td width="1%" valign=top>
+     <h3>Links:</h3>
+      <a href="http://viewcvs.sourceforge.net">Home</a><br>
+      <a href="upgrading.html">Upgrading</a><br>
+      <a href="contributing.html">Contributing</a><br>
+      <a href="license-1.html">License</a><br>
+      <a href="who.html">Who</a><br>
+     <h3>Sections:</h3>
+      <a href="#Features">Features</a><br>
+      <a href="#History">History</a><br>
+      <a href="#Mail">Mailing Lists</a><br>
+      <a href="#Cvsweb">vs.&nbsp;cvsweb</a><br>
+      <a href="#Download">Download</a><br>
+      <a href="#Future">Future&nbsp;directions</a><br>
+      <a href="#Colorize">Colorization</a><br>
+      <a href="#OtherSoftware">Related&nbsp;Software</a><br>
+    </td>
+    <td colspan=3>
+
+    <hr width="75&#37;">
+    <h2><a name="Features">Features</a></h2>
+    <p>
+      ViewCVS can browse directories, change logs, and specific
+      revisions of files. It can display diffs between versions and
+      show selections of files based on tags or branches. In addition,
+      ViewCVS has "annotation" or "blame" support, Bonsai-like query
+      facilities, template-based page generation, and support for
+      individually configuring virtual hosts.
+
+      It also includes support for
+      <a href="http://www.akhphd.au.dk/~bertho/cvsgraph/"><i>CvsGraph</i></a>
+      -- a program to display the tree of revisions and branches
+      graphically.
+    </p>
+    <p>
+      Currently, the functionality of ViewCVS surpasses that of cvsweb.
+      See <a href="#Cvsweb">below</a> for a list of additional features.
+    </p>
+
+    <hr width="75&#37;">
+    <h2><a name="History">History</a></h2>
+    <p>
+      The ViewCVS software was inspired by
+      <a href="http://stud.fh-heilbronn.de/~zeller/cgi/cvsweb.cgi/"><i>cvsweb</i></a>
+      (originally written by Bill Fenner and then further developed by 
+      <a href="mailto:zeller at think.de">Henner Zeller</a>).
+      Greg Stein wanted to make some changes and updates, but cvsweb was
+      implemented in Perl. He wrote: 
+      <blockquote><i>While I can manage some Perl, cvsweb was
+	 rather unmaintainable for me. So I undertook the 
+	 task to convert the software to
+	 <a href="http://www.python.org/">Python</a>. As a result, 
+	 I've actually been able to go <em>way</em> beyond the simple
+	 changes that I had envisioned.
+      </i></blockquote>
+    </p>
+    <p>
+      ViewCVS started as a port of the cvsweb script, but has had
+      numerous cleanups and other modifications, based on some of
+      Python's strengths. There is still some minor "badness"
+      remaining from the Perl code, but Greg has been working on
+      flushing that out, while adding new features.
+    </p>
+    <p>
+      ViewCVS has been developed by the <a href="who.html">ViewCVS
+	Group</a> and is made available under a
+      <a href="license-1.html">BSD-type license</a>.
+    </p>
+
+    <p>
+      ViewCVS requires <strong>Python 1.5.2</strong> or later (Python
+      1.5.2 has been out for several years and is readily available for 
+      your favorite operating system).
+    </p>
+
+    <hr width="75&#37;">
+    <h2><a name="Mail">Mailing Lists</a></h2>
+    <p>
+      If you have any comments, questions, or suggestions,
+      then please send them to the
+      <a href="http://mailman.lyra.org/mailman/listinfo/viewcvs"><i>ViewCVS
+	mailing list</i></a>, which is also 
+      <a href="http://mailman.lyra.org/pipermail/viewcvs/"><i>archived</i></a>. 
+    </p>
+    <p>
+      A <a href="http://mailman.lyra.org/mailman/listinfo/viewcvs-dev"><i>mailing
+	list for ViewCVS developers</i></a> is also available 
+      (<a href="http://mailman.lyra.org/pipermail/viewcvs-dev/"><i>Archive</i></a>). 
+    </p>
+    <p>
+      ViewCVS is an <a href="http://www.opensource.org/"><i>Open
+      Source</i></a> project, and all
+      <a href="contributing.html">contributions</a> are welcome.
+    </p>
+
+    <hr width="75&#37;">
+    <h2><a name="Cvsweb">Additional features over cvsweb</a></h2>
+
+    <ul>
+      <li>
+        Template support: you can now customize the look and feel of
+        ViewCVS by editing the provided EZT templates, which are used
+        to generate the pages.
+      </li>
+      <li>
+        Internationalization support: ViewCVS will parse and handle
+        the Accept-Language request header, and can select different
+        inputs for localized page generation.
+      </li>
+      <li>
+	<a href="#Colorize">Colorization</a> for many file types via 
+	<code>enscript</code>.
+      </li>
+      <li>
+	Bonsai-like query features. (Requires MySQL and some other
+	prerequisites)
+      </li>
+      <li>
+	Annotation/blame viewing support against a <strong>read-only</strong>
+	repository.
+      </li>
+      <li>
+	Configuration on a per-virtual-host basis. This allows you
+	to share the configuration file and ViewCVS installation
+	across virtual hosts, yet still be able to fine-tune the
+	options when necessary.
+      </li>
+      <li>
+        Automatic generation of tarballs for the HEAD or a specified
+        tag.
+      </li>
+      <li>
+	Runs either as CGI script, called from an installed web server
+	(such as <a href="http://httpd.apache.org/"><i>Apache</i></a>),
+	or as a standalone server.
+      </li>
+      <li>
+        Searching files for matches for a regular expression.
+      </li>
+      <li>Better reporting for unreadable files.</li>
+      <li>
+	More robust when given varying <code>rcsdiff</code> or
+	<code>rlog</code> outputs.
+      </li>
+      <li>Hard breaks in human-readable diffs.</li>
+      <li>
+	The configuration file is optional (you can change the values
+	right in the CGI script and avoid the config file, if you so
+	choose). The config file syntax is also cleaner, since it is
+	human-manageable rather than source code.
+      </li>
+      <li>
+	Directories with a large number of files can be viewed.
+      </li>
+      <li>
+        Support for browsing <a href="http://subversion.tigris.org/">Subversion</a> 
+        repositories. <small>(requires Subversion's Python bindings)</small>
+      </li>
+      <li>
+	<strong>Security</strong>: ViewCVS only requires read access
+	to the CVS repository (not read/write). With the correct
+	security partitioning, this means that even if ViewCVS were to 
+	be subverted, your source code is safe. Further, ViewCVS does
+	not use any <code>system()</code> or <code>popen()</code>
+	calls, which are very susceptible to abuse.
+	<br>
+	<small>(cvsweb had a hole due to a popen() call)</small>
+      </li>
+      <li>
+        Last but not least: it doesn't suffer from the "unmaintainable
+	code effect" that hits most Perl projects sooner or later:  
+	<blockquote><i>[Perl] combines all the worst aspects of C and Lisp: 
+	  a billion different sublanguages in one monolithic executable.  
+	  It combines the power of C with the readability of PostScript.</i>
+					       --&nbsp;Jamie&nbsp;Zawinski
+         </blockquote>
+       </li>
+    </ul>
+    
+    <p>
+      The changes present in each release are available in
+      <a href="http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/viewcvs/viewcvs/CHANGES?rev=HEAD">ViewCVS's
+      CHANGES file</a>.
+    </p>
+
+    <hr width="75&#37;">
+    <h2><a name="Download">Download</a></h2>
+    <p>
+      The software is available for download:
+    </p>
+    <blockquote>
+      <a href="viewcvs-0.9.2.tar.gz">Version 0.9.2 of ViewCVS as a gzipped
+      tar</a>
+      <br>
+      <a href="viewcvs-0.9.2.zip">Version 0.9.2 of ViewCVS as a ZIP
+      file</a>
+    </blockquote>
+    <p>
+      Of course the current development version is also available 
+      through ViewCVS itself:
+    </p>
+    <blockquote>
+      <a href="http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/viewcvs/">http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/viewcvs/</a>
+    </blockquote>
+
+    <p>
+      You can also
+      <a href="http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/viewcvs/viewcvs/CHANGES?rev=HEAD">see
+      the changes</a> for this release.
+    </p>
+
+    <hr width="75&#37;">
+    <h2><a name="Future">Future features, directions</a></h2>
+    <p>
+    ViewCVS is a Open Source project.  So any future development depends
+    on the contributions that will be made by its user community.  
+    Certainly working patches have a greater chance to become realized 
+    quickly than feature requests.  <i>But don't hesitate to submit your
+	suggestions! Send mail to the
+	  <a href="mailto:viewcvs at lyra.org">viewcvs at lyra.org</a>
+	  mailing list or even better use the 
+	  <a href="http://sourceforge.net/tracker/?func=add&group_id=18760&atid=368760">SF&nbsp;tracker</a>.
+	</i>
+    </p>
+    <ul>
+      <li>See the feature requests already submitted through
+        the <a href="http://sourceforge.net/tracker/?atid=368760&group_id=18760&func=browse">SF feature request tracker</a>
+      </li>
+      <li>UI streamlining/simplification</li>
+      <li>Integration with CVS checkin auto-mail scripts</li>
+      <li>Tighter integration with the query features</li>
+     <p>
+    </ul>
+
+    <p>
+      And another longer term pet of Greg Stein:
+    </p>
+    <ul>
+      <li>Integration with an indexer such as LXR</li>
+    </ul>
+    </p>
+
+    <hr width="75&#37;">
+    <h2><a name="Colorize">Colorization of files</a></h2>
+    <p>
+      ViewCVS can make use of the <code>enscript</code> program to
+      colorize files in the CVS repository. If <code>enscript</code>
+      is present on your system, then set the
+      <code>use_enscript</code> option in the
+      <code>viewcvs.conf</code> configuration file to <code>1</code>. 
+      If necessary,
+      update the <code>enscript_path</code> option to point to your
+      installation directory. ... That's it! Now, as you view files
+      through ViewCVS, they will be colored.
+    </p>
+
+    <h3>Colorization of Python files</h3>
+    <p>
+      ViewCVS currently also comes with a builtin colorizer for Python
+      source files. This may go away in a future version, given the new
+      <code>enscript</code> support...
+    </p>
+    <p>
+      Christophe Pelte suggested this feature: colorize Python source
+      files using
+      <a href="http://starship.python.net/crew/lemburg/SoftwareDescriptions.html#py2html.py"><i>py2html</i></a>
+      (by Marc-Andrew Lemburg, based on
+      <a href="http://starship.python.net/crew/just/code/PyFontify.py"><i>PyFontify</i></a>
+      by Just van Rossum). I've added this feature to ViewCVS 0.3,
+      along with a generalized plugin mechanism for custom coloring other
+      types of files. See the instructions within the viewcvs.cgi for
+      setting the <code>py2html_path</code> configuration variable if
+      you want to use this feature.
+    </p>
+    <hr width="75&#37;">
+    <h2><a name="OtherSoftware">Related Software</a></h2>
+    <p>
+    Finally we compiled a list of links to related
+    software projects that might be also of interest to you:
+    <ul>
+      <li>
+      <a href="http://www.python.org/"><i>Python</i></a> : The programming
+      language ViewCVS is written in.
+      </li>
+      <li>
+      <a href="http://www.cvshome.org/"><i>CVS</i></a> : CVS is the 
+      Concurrent Versions System, the dominant open-source 
+      network-transparent version control system.
+      </li>
+      <li>
+      <a href="http://www.cs.purdue.edu/homes/trinkle/RCS/"><i>RCS</i></a> : 
+      Revision Control System; the backend to CVS.
+      </li>
+      <li>
+      <a href="http://subversion.tigris.org/"><i>Subversion</i></a> : 
+      a CVS-like open source version control system.
+      </li>
+      <li>
+      <a href="http://www.apache.org/"><i>Apache</i></a> : A (The?) web server.
+      </li>
+      <li>
+      <a href="http://people.ssh.com/mtr/genscript/"><i>enscript</i></a> :
+      used to colorize code displayed from the CVS repository 
+      (<a href="#Colorize">see above</a>).
+      </li>
+      <li>
+      <a href="http://www.akhphd.au.dk/~bertho/cvsgraph/"><i>CvsGraph</i></a> :
+      server side software used to display revisions graphically.  Called from
+      ViewCVS.
+      </li>
+      <li>
+      <a href="http://www.mysql.com/"><i>MySQL</i></a> : to create 
+      and query a commit database.  To make use of it you also need:
+      </li>
+      <li>
+      <a href="http://sourceforge.net/projects/mysql-python"><i>mysql-python</i></a> : 
+      the Python language binding to access MySQL databases.
+      </li>
+      <li>
+      <a href="http://cvsgrab.sourceforge.net/"><i>CVSGrab</i></a> :
+      client software used to grab from a public repository using ViewCVS 
+      and HTTP (useful if you are behind a firewall).
+      </li>
+    </ul>
+    </p>
+
+  </td></tr></table>
+  <hr>
+  <address><a href="mailto:viewcvs at lyra.org">ViewCVS Users Group</a></address>
+<!-- Created: Fri Dec  3 02:51:37 PST 1999 -->
+<!-- hhmts start -->
+Last modified: Sat Jun 15 11:30:35 CEST 2002
+<!-- hhmts end -->
+  </body>
+</html>

Added: trunk/gforge_base/evolvisforge/plugins.test/scmsvn/www/viewcvs/license-1.html
===================================================================
--- trunk/gforge_base/evolvisforge/plugins.test/scmsvn/www/viewcvs/license-1.html	                        (rev 0)
+++ trunk/gforge_base/evolvisforge/plugins.test/scmsvn/www/viewcvs/license-1.html	2010-02-26 00:19:01 UTC (rev 4850)
@@ -0,0 +1,103 @@
+<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
+<html>
+  <head>
+    <title>ViewCVS License Agreement (v1)</title>
+  </head>
+
+<body background="images/chalk.jpg">
+  <table width="100&#37;" cellspacing=5>
+    <tr>
+      <td width="1%"><a href="index.html"><img border=0
+	     src="images/logo.png"></a>
+      </td>
+      <td>
+	<h1>ViewCVS License Agreement (v1)</h1>
+      </td>
+      <td width="1%"><a href="http://sourceforge.net/"><img border=0
+	    src="http://sourceforge.net/sflogo.php?group_id=18760&type=1"></a><br><a href="http://sourceforge.net/projects/viewcvs/">ViewCVS&nbsp;project&nbsp;page</a>
+      </td>
+    </tr>
+    <tr><td width="1%" valign=top>
+       <a href="index.html">Overview</a><br>
+       <a href="upgrading.html">Upgrading</a><br>
+       <a href="contributing.html">Contributing</a><br>
+       License<br>
+       <a href="who.html">Who</a><br>
+    </td><td colspan=2>
+
+    <p>
+      The following text constitutes the license agreement for the
+      <a href="./">ViewCVS</a> software. It
+      is an agreement between
+      <a href="who.html">The ViewCVS
+	Group</a> and the users of ViewCVS.
+    </p>
+    <p>
+      <small>
+	<em>
+	  Note: the copyright years were updated on May 12, 2001 and
+	  September 5, 2002. No other changes were made to the
+	  license.
+	</em>
+      </small>
+    </p>
+
+    <hr>
+
+    <p>
+      <b>
+	Copyright &copy; 1999-2002 The ViewCVS Group.  All rights reserved.
+      </b>
+    </p>
+    <p>
+      By using ViewCVS, you agree to the terms and conditions set
+      forth below:
+    </p>
+    <p>
+      Redistribution and use in source and binary forms, with or
+      without modification, are permitted provided that the following
+      conditions are met:
+    </p>
+    <ol>
+      <li>
+	<p>
+	  Redistributions of source code must retain the above
+	  copyright notice, this list of conditions and the following
+	  disclaimer.
+	</p>
+      </li>
+      <li>
+	<p>
+	  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.
+	</p>
+      </li>
+    </ol>
+
+    <p>
+      THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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.
+    </p>
+
+  </td></tr></table>
+  <hr>
+  <address><a href="mailto:viewcvs at lyra.org">ViewCVS Users Group</a></address>
+<!-- Created: Mon May  8 19:01:27 PDT 2000 -->
+<!-- hhmts start -->
+Last modified: Thu Sep  5 00:34:13 PDT 2002
+<!-- hhmts end -->
+  </body>
+</html>

Added: trunk/gforge_base/evolvisforge/plugins.test/scmsvn/www/viewcvs/styles.css
===================================================================
--- trunk/gforge_base/evolvisforge/plugins.test/scmsvn/www/viewcvs/styles.css	                        (rev 0)
+++ trunk/gforge_base/evolvisforge/plugins.test/scmsvn/www/viewcvs/styles.css	2010-02-26 00:19:01 UTC (rev 4850)
@@ -0,0 +1,120 @@
+/*******************************/
+/***  ViewCVS CSS Stylesheet ***/
+/*******************************/
+
+/*** Standard Tags ***/
+html, body {
+  color: #000000;
+  background-color: #ffffff;
+}
+
+a:link    { color: #0000ff; }
+a:visited { color: #880088; }
+a:active  { color: #0000ff; }
+
+
+/** Navigation Headers ***/
+.vc_navheader {
+  background-color: #8888ff;
+}
+
+
+/*** Table Headers ***/
+.vc_header {
+  text-align: left;
+  background-color: #cccccc;
+}
+.vc_header_sort {
+  text-align: left;
+  background-color: #88ff88;
+}
+
+
+/*** Table Rows ***/
+.vc_row_even {
+  background-color: #ffffff;
+}
+.vc_row_odd {
+  background-color: #ccccee;
+}
+
+
+/*** Log messages ***/
+.vc_log {
+  /* unfortunately, white-space: pre-wrap isn't widely supported ... */
+  white-space: -moz-pre-wrap; /* Mozilla based browsers */
+  white-space: -pre-wrap;     /* Opera 4 - 6 */
+  white-space: -o-pre-wrap;   /* Opera >= 7 */
+  white-space: pre-wrap;      /* CSS3 */
+  word-wrap: break-word;      /* IE 5.5+ */
+}
+
+
+/*** Markup Summary Header ***/
+.vc_summary {
+  background-color: #eeeeee;
+}
+
+
+/*** Diff Styles ***/
+.vc_diff_header {
+  background-color: #ffffff;
+}
+.vc_diff_chunk_header {
+  background-color: #99cccc;
+}
+.vc_diff_chunk_extra {
+  font-size: smaller;
+}
+.vc_diff_empty {
+  background-color: #cccccc;
+  font-family: sans-serif;
+  font-size: smaller;
+}
+.vc_diff_add {
+  background-color: #aaffaa;
+  font-family: sans-serif;
+  font-size: smaller;
+}
+.vc_diff_remove {
+  background-color: #ffaaaa;
+  font-family: sans-serif;
+  font-size: smaller;
+}
+.vc_diff_change {
+  background-color: #ffff77;
+  font-family: sans-serif;
+  font-size: smaller;
+}
+.vc_diff_change_empty {
+  background-color: #eeee77;
+  font-family: sans-serif;
+  font-size: smaller;
+}
+.vc_diff_nochange {
+  font-family: sans-serif;
+  font-size: smaller;
+}
+.vc_raw_diff {
+  background-color: #cccccc;
+  font-size: smaller;
+}
+
+/*** Annotate Styles ***/
+.vc_blame_line, .vc_blame_author, .vc_blame_rev {
+  font-family: monospace;
+  text-align: right;
+  white-space: nowrap;
+  padding-right: 0.5em;
+}
+.vc_blame_text {
+  font-family: monospace;
+  text-align: left;
+  white-space: pre;
+  width: 100%;
+}
+
+/*** Query Form ***/
+.vc_query_form {
+  background-color: #e6e6e6;
+}

Added: trunk/gforge_base/evolvisforge/plugins.test/scmsvn/www/viewcvs/upgrading.html
===================================================================
--- trunk/gforge_base/evolvisforge/plugins.test/scmsvn/www/viewcvs/upgrading.html	                        (rev 0)
+++ trunk/gforge_base/evolvisforge/plugins.test/scmsvn/www/viewcvs/upgrading.html	2010-02-26 00:19:01 UTC (rev 4850)
@@ -0,0 +1,773 @@
+<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
+<html>
+  <head>
+    <title>Upgrading a ViewCVS Installation</title>
+  </head>
+
+<body background="images/chalk.jpg">
+  <table width="100&#37;" cellspacing=5>
+    <tr>
+      <td width="1%"><a href="index.html"><img border=0
+	     src="images/logo.png"></a>
+      </td>
+      <td>
+	<h1>Upgrading a ViewCVS Installation</h1>
+      </td>
+      <td width="1%"><a href="http://sourceforge.net/"><img border=0
+	    src="http://sourceforge.net/sflogo.php?group_id=18760&type=1"></a><br><a href="http://sourceforge.net/projects/viewcvs/">ViewCVS&nbsp;project&nbsp;page</a>
+      </td>
+    </tr>
+    <tr><td width="1%" valign=top>
+       <a href="index.html">Overview</a><br>
+       Upgrading<br>
+       <a href="contributing.html">Contributing</a><br>
+       <a href="license-1.html">License</a><br>
+       <a href="who.html">Who</a><br>
+    </td><td colspan=2>
+
+    <p>
+      This document describes some of the things that you will need to 
+      consider, change, or handle when upgrading an existing ViewCVS
+      installation to a newer version.
+    </p>
+    <p>
+      Upgrading from an ancient version of ViewCVS to the latest version
+      isn't necessarily a multi step process.  The instructions are only 
+      organized that way.  You can certainly upgrade in a single step.
+    </p>
+    <p>
+      It is always recommended to install the new version in a fresh directory
+      and to carefully compare the configuration files.  A possible approach
+      is to name the directories <code>/usr/local/viewcvs-0.6</code>, 
+      <code>/usr/local/viewcvs-0.7</code> and so on and than create a 
+      symbolic link <code>viewcvs</code> pointing to the production 
+      version.  This way you can easily test several versions and switch
+      back, if your users start to complain.
+    </p>
+
+    <ul>
+      <li><a href="#from9">Upgrading from ViewCVS 0.9</a></li>
+      <li><a href="#from8">Upgrading from ViewCVS 0.8</a></li>
+      <li><a href="#from7">Upgrading from ViewCVS 0.7 or earlier</a></li>
+    </ul>
+
+    <hr>
+
+    <h2><a name="from9">Upgrading from ViewCVS 0.9</a></h2>
+    <p>
+      This section discusses how to upgrade ViewCVS 0.9 to version
+      1.0 or a later version of the software.
+    </p>
+    <h3>CGI Stubs</h3>
+    
+    <p>The CGI stub scripts haved been moved from 
+    <code>&lt;VIEWCVS_INSTALLATION_DIRECTORY&gt;/cgi/</code> to 
+    <code>&lt;VIEWCVS_INSTALLATION_DIRECTORY&gt;/www/cgi/</code>, so you 
+    will need update any ScriptAlias directives pointing to them in 
+    your apache configuration. Also, the contents of these scripts
+    have changed, so you may need to replace copies of the old scripts
+    you put in other directories.</p>
+
+    <h3>Checkin Database</h3>
+    
+    <p>ViewCVS 1.0 reads and writes commit times in the MySQL
+    database in UTC time rather than local time. This can cause
+    times displayed on the query page to be a few hours off if
+    an old database is being used with a new version of ViewCVS.
+    The best way to fix this is to rebuild the database with the
+    new version of cvsdbadmin, but it it is also possible to
+    enable a backwards compatibility mode by setting
+    <code>utc_time = 0</code> at the top of lib/dbi.py</p>
+
+    <h3>Template Arrangement</h3>
+    
+    <p>The default templates have been rearranged a bit in ViewCVS
+    1.0.  Specifically, "header.ezt" and "footer.ezt" have moved into
+    the "templates/include/" subdirectory.  Also, "directory.ezt" and
+    "dir_alternate.ezt" now reference new template files
+    "dir_header.ezt" and "dir_footer.ezt", also found in the
+    "templates/include/" subdirectory.</p>
+
+    <p>Notably, the "markup.ezt" and "annotate.ezt" templates are now
+    fully self-contained.  That is, the markup and annotation data
+    generated by ViewCVS is now accessible in those templates just
+    like other template variables.  As a result, ViewCVS now has no
+    more internal need for the <var>templates.footer</var>
+    configuration variable, so that variable has been removed from the
+    default configuration file.</p>
+
+    <h3>Configuration Options</h3>
+    <p>
+      Lots of options have been added.  <i style="color:red;">### Need to
+      document them.</i>
+    </p>
+
+    <h3>Removed Template Variables</h3>
+    <blockquote>
+      <dl>
+        <dt>
+          <code>directory.ezt</code> and <code>dir_alternate.ezt</code>:
+          <var>params</var>
+        </dt>
+        <dd>
+          Replaced with new <var>search_tag_hidden_values</var>
+          variable.
+        </dd>
+      </dl>
+      <dl>
+        <dt>
+          <code>directory.ezt</code> and <code>dir_alternate.ezt</code>:
+          <var>rows.cvs</var>
+        </dt>
+        <dd>
+          Merged with <var>rows.state</var>.  Interesting states for
+          <var>rows.state</var> now include "none" (no information
+          known), "error" (an error occured trying to get
+          information), "dead" (this revision is marked as 'dead').
+        </dd>
+      </dl>
+      <dl>
+        <dt>
+          <code>directory.ezt</code> and <code>dir_alternate.ezt</code>:
+          <var>have_logs</var>
+        </dt>
+        <dd>Deemed unnecessary.</dd>
+      </dl>
+      <dl>
+        <dt>
+          <code>directory.ezt</code>, <code>dir_alternate.ezt</code>,
+          <code>log.ezt</code>, and <code>log_table.ezt</code>:
+          <var>current_root</var>
+        </dt>
+        <dd>Replaced by <var>rootname</var>, which is now available to
+            all templates.</dd>
+      </dl>
+      <dl>
+        <dt><code>graph.ezt</code>: <var>request.url</var></dt>
+        <dd>Replaced with new <var>imagesrc</var> variable.</dd>
+      </dl>
+      <dl>
+        <dt><code>graph.ezt</code>: <var>request.where</var></dt>
+        <dd>Replaced with <var>path</var> variable.</dd>
+      </dl>      
+      <dl>
+        <dt><code>header.ezt</code>: <var>qquery</var></dt>
+        <dd>Combined into <var>file_url</var> variable.</dd>
+      </dl>
+      <dl>
+        <dt><code>markup.ezt</code>: <var>utc_date</var>,
+        <var>href</var>, and <var>text_href</var></dt>
+        <dd>
+          Replaced with new <var>date_str</var>, <var>download_href>,
+          and <var>download_text_href</var> variables.
+        </dd>
+      </dl>
+      <dl>
+        <dt><code>log.ezt</code> and <code>log_table.ezt</code>:
+        <var>href</var>, <var>query</var>, <var>qquery</var>,
+        <var>head_href</var>, <var>head_abs_href</var>,
+        <var>entries.href</var>, and 
+        <var>entries.text_href</var></dt>
+        <dd>
+          Replaced with new <var>entries.annotate_href</var>,
+          <var>diff_url</var>, <var>diff_params</var>,
+          <var>diff_select_action</var>,
+          <var>branch_select_action</var>,
+          <var>logsort_action</var>,
+          <var>view_href</var>, <var>download_href</var>,
+          <var>download_text_href</var>,
+          <var>entries.download_href</var>, and
+          <var>entries.download_text_href</var> variables.
+        </dd>
+      </dl>
+    </blockquote>
+
+    <h3>New Template Variables</h3>
+    <blockquote>
+      <dl>
+        <dt>All files: <var>roottype</var>, <var>rootname</var>, and 
+            <var>pathtype</var></dt>
+        <dd>
+          Strings denoting the type ("cvs" or "svn") and name current
+          repository. 
+        </dd>
+      </dl>
+      <dl>
+        <dt>All files: <var>icons</var></dt>
+        <dd>
+          Web path to directory containing apache icon files.
+        </dd>
+      </dl>
+      <dl>
+        <dt>All files: <var>docroot</var></dt>
+        <dd>
+          Web path to directory containing ViewCVS static files
+          (files in <code>&lt;VIEWCVS_INSTALLATION_DIRECTORY&gt;/doc</code>)
+        </dd>
+      </dl>
+      <dl>
+        <dt><code>graph.ezt</code>: <var>imagesrc</var></dt>
+        <dd>String contain URL for graph image.</dd>
+      </dl>
+      <dl>
+        <dt><code>markup.ezt</code>: <var>date_str</var></dt>
+        <dd>String representing checkin date</dd>
+      </dl>
+      <dl>
+        <dt><code>markup.ezt</code>: <var>markup</var></dt>
+        <dd>New placeholder for the marked-up file contents.</dd>
+      </dl>
+      <dl>
+        <dt>
+          <code>markup.ezt</code>:
+          <var>download_href</var> and <var>download_text_href</var>
+        </dt>
+        <dd>New variables for links.</dd>
+      </dl>
+      <dl>
+        <dt>
+          <code>directory.ezt</code> and <code>dir_alternate.ezt</code>:
+          <var>tree_rev</var>, <var>tree_rev_href</var>,
+          and <var>jump_rev</var>
+        </dt>
+        <dd>New Subversion-only directory revision items.</dd>
+      </dl>
+      <dl>
+        <dt>
+          <code>directory.ezt</code> and <code>dir_alternate.ezt</code>:
+          <var>rows.mime_type</var>
+        </dt>
+        <dd>New mime-type variable for file directory entries.</dd>
+      </dl>
+      <dl>
+        <dt>
+          <code>directory.ezt</code> and <code>dir_alternate.ezt</code>:
+          <var>rows.size</var>
+        </dt>
+        <dd>New filesize variable for file directory entries.</dd>
+      </dl>
+      <dl>
+        <dt>
+          <code>diff.ezt</code>: 
+          <var>raw_diff</var>
+        </dt>
+        <dd>New variable for testing and presenting the raw
+          (non-colored) diff contents</dd>.
+      </dl>
+      <dl>
+        <dt>
+          <code>annotate.ezt</code>:
+          <var>lines</var>, <var>lines.line_number</var>, <var>lines.rev</var>,
+          <var>lines.author</var>, <var>lines.prev_rev</var>,
+          <var>lines.diff_url</var>, and <var>lines.text</var>
+        </dt>
+        <dd>New variables for annotations.</dd>
+      </dl>
+      <dl>
+        <dt>
+          <code>log.ezt</code> and <code>log_table.ezt</code>:
+          <var>entries.filename</var>, <var>entries.size</var>,
+          <var>entries.copy_path</var>, <var>entries.copy_rev</var>,
+          <var>entries.copy_href</var>, <var>entries.prev_path</var>,
+          and <var>entries.revision_href</var>
+        </dt>
+        <dd>New attributes for Subversion revisions.</dd>
+      </dl>
+      <dl>
+        <dt>
+          <code>log.ezt</code> and <code>log_table.ezt</code>:
+          <var>view_href</var>, <var>download_href</var>,
+          <var>download_text_href</var>,
+          <var>entries.download_href</var>, and
+          <var>entries.download_text_href</var>
+        </dt>
+        <dd>New variables for links.</dd>
+      </dl>
+    </blockquote>
+
+
+    <h3>New Template Form Variables</h3>
+    <p>
+      Each HTML form that appears in ViewCVS templates is now
+      associated with 2 new variables which should be used to
+      determine its <code>ACTION</code> value and its hidden field
+      values. Forms using the new variables look like
+    </p>
+
+    <pre>
+      &lt;form method=get action="[my_form_action]"&gt;
+        [my_form_hidden_values]
+        ... form widgets go here ...
+      &lt;/form&gt;
+    </pre>
+
+    <p>
+      Here is a list of the new variable names and the forms they are
+      associated with:
+    </p>
+
+    <table border=1>
+      <tr>
+        <th>Variables</th><th>Form</th>
+      </tr>
+      <tr>
+        <td>
+          <var>change_root_action</var><br>
+          <var>change_root_hidden_values</var>
+        </td>
+        <td>
+          Root selector form in <code>directory.ezt</code> and
+          <code>dir_alternate.ezt</code>.
+        </td>
+      </tr>
+      <tr>
+        <td>
+          <var>jump_rev_action</var><br>
+          <var>jump_rev_hidden_values</var>
+        </td>
+        <td>
+          Subversion directory revision selector form in
+          <code>directory.ezt</code> and
+          <code>dir_alternate.ezt</code>.
+        </td>
+      </tr>
+      <tr>
+        <td>
+          <var>dir_paging_action</var><br>
+          <var>dir_paging_hidden_values</var>
+        </td>
+        <td>
+          Directory paging form in <code>directory.ezt</code> and
+          <code>dir_alternate.ezt</code>.
+        </td>
+      </tr>
+      <tr>
+        <td>
+          <var>search_tag_action</var><br>
+          <var>search_tag_hidden_values</var>
+        </td>
+        <td>
+           Tag choosing and regular expression searching form in
+           <code>directory.ezt</code> and
+           <code>dir_alternate.ezt</code>.
+        </td>
+      </tr>
+      <tr>
+        <td>
+          <var>log_paging_action</var><br>
+          <var>log_paging_hidden_values</var>
+        </td>
+        <td>
+           Log page paging form in <code>include/paging.ezt</code>.
+        </td>
+      </tr>
+      <tr>
+        <td>
+          <var>diff_select_action</var><br>
+          <var>diff_select_hidden_values</var>
+        </td>
+        <td>
+           Arbitrary diff form on log page in
+           <code>include/diff_form.ezt</code>.
+        </td>
+      </tr>
+      <tr>
+        <td>
+          <var>branch_select_action</var><br>
+          <var>branch_select_hidden_values</var>
+        </td>
+        <td>
+           Branch select form on log page in
+           <code>include/branch_form.ezt</code>.
+        </td>
+      </tr>
+      <tr>
+        <td>
+          <var>logsort_action</var><br>
+          <var>logsort_hidden_values</var>
+        </td>
+        <td>
+           Log sort form on log page in <code>include/sort.ezt</code>.
+        </td>
+      </tr>
+      <tr>
+        <td>
+          <var>diff_format_action</var><br>
+          <var>diff_format_hidden_values</var>
+        </td>
+        <td>
+           Diff format form in <code>include/diff.ezt</code>.
+        </td>
+      </tr>
+    </table>
+
+    <h3>Other Template Changes</h3>
+    <h4>In <code>directory.ezt</code> and <code>dir_alternate.ezt</code></h4>
+    <ul>
+      <li>
+        A new form for changing the current directory revision is 
+        displayed for subversion directories.
+      </li>
+      <li>
+        A new form that controls paging is displayed when 
+        cfg.options.use_pagesize is not 0
+      </li>
+      <li>
+        The sorting links and "hide attic" link are no longer 
+        prefixed with "<code>./</code>"
+      </li>
+      <li>
+        The revision number links no longer need 
+        "<code>content-type=text/vnd.viewcvs-markup</code>" suffixes.
+      </li>
+      <li>
+        The link to Attic/ is only displayed for CVS roots
+      </li>
+      <li>
+        Directory <var>rows.name</var> values no longer have
+        trailing slashes
+      </li>
+    </ul>
+
+    <h4>In <code>log.ezt</code> and <code>log_table.ezt</code></h4>
+    <ul>
+      <li>
+        "Default branch" section moved into include/branch.ezt and is
+        only displayed for CVS roots
+      </li>
+      <li>
+        "Current tag" section moved into include/view_tag.ezt and is
+        only displayed for CVS roots
+      </li>
+      <li>
+        "Changes since" is only displayed for cvs roots
+      </li>
+      <li>
+        New paging form is included from include/paging.ezt
+      </li>
+      <li>
+        Arbitrary diff form moved into include/diff_form.ezt
+      </li>
+      <li>
+        Branch select form moved into include/branch_form.ezt
+      </li>
+      <li>
+        Log sort form moved into include/sort.ezt
+      </li>
+    </ul>
+
+    <hr>
+
+    <h2><a name="from8">Upgrading from ViewCVS 0.8</a></h2>
+    <p>
+      This section discusses how to upgrade ViewCVS 0.8 to version
+      0.9 or a later version of the software.
+    </p>
+    
+    <p>
+      <strong>NOTE:</strong> these changes will bring you up to the
+      requirements of version 0.9. You must also follow the directions
+      for <a href="#from9">upgrading from 0.9</a>.
+    </p>
+
+    <h3>Configuration Options</h3>
+    <p>
+      More templates were introduced in version 0.8 of the software,
+      which made many of the configuration options obsolete. This
+      section covers which options were removed. If you made any
+      changes to these options, then you will need to make
+      corresponding changes in the templates.
+    </p>
+    <blockquote>
+      <dl>
+	<dt>
+	  Colors:
+	  <strong>diff_heading</strong>,
+	  <strong>diff_empty</strong>,
+	  <strong>diff_remove</strong>,
+	  <strong>diff_change</strong>,
+	  <strong>diff_add</strong>,
+	  and <strong>diff_dark_change</strong>
+	</dt>
+	<dd>
+	  These options have been incorporated into the
+	  <code>diff.ezt</code> template.
+
+	  <p></p>
+	</dd>
+
+	<dt><strong>markup_log</strong></dt>
+	<dd>
+	  This option has been incorporated into the
+	  <code>markup.ezt</code> template.
+
+	  <p></p>
+	</dd>
+
+        <dt>Colors: <strong>nav_header</strong>
+          and <strong>alt_background</strong></dt>
+	<dd>
+	  These options have been incorporated into the
+	  <code>header.ezt</code> template.
+
+	  <p></p>
+	</dd>
+
+        <dt>
+	  Images:
+          <strong>back_icon</strong>,
+          <strong>dir_icon</strong>,
+          and <strong>file_icon</strong>
+        </dt>
+	<dd>
+	  These options have been incorporated into the
+	  <code>directory.ezt</code>, <code>header.ezt</code>,
+	  <code>log.ezt</code>, <code>log_table.ezt</code>, and
+	  <code>query.ezt</code> templates.
+
+	  <p></p>
+	</dd>
+
+	<dt><strong>use_java_script</strong>
+          and <strong>open_extern_window</strong></dt>
+	<dd>
+	  The templates now use JavaScript in all applicable places,
+	  and open external windows for most downloading and viewing
+	  of files. If you wish to not use JavaScript and/or external
+	  windows, then remove the feature(s) from the templates.
+
+	  <p></p>
+	</dd>
+
+	<dt><strong>show_author</strong></dt>
+	<dd>
+          Changing this option would be quite strange and rare. If you
+          do not want to show the author for the revisions, then you
+          should remove it from the various templates.
+
+	  <p></p>
+	</dd>
+
+	<dt><strong>hide_non_readable</strong></dt>
+	<dd>
+          This option was never used, so it has been removed.
+
+	  <p></p>
+	</dd>
+
+	<dt><strong>flip_links_in_dirview</strong></dt>
+	<dd>
+          This option is no longer available. If you want the links in
+          your directory view flipped, then you may use the
+          <code>dir_alternate.ezt</code> template.
+
+	  <p></p>
+	</dd>
+
+      </dl>
+    </blockquote>
+
+    <h3>Template Variables</h3>
+    <p>
+      Some template variables that were available in 0.8 have been
+      removed in 0.9. If you have custom templates that refer to these
+      variables, then you will need to modify your templates.
+    </p>
+
+	  <blockquote>
+	    <dl>
+	      <dt><code>directory.ezt</code>: <var>headers</var></dt>
+	      <dd>
+		The headers are now listed explicitly in the template,
+		rather than made available through a list.
+		<p></p>
+	      </dd>
+
+	      <dt>
+		<code>directory.ezt</code>:
+		<var>rows.cols</var>,
+		and <var>rows.span</var>
+	      </dt>
+	      <dd>
+		These variables were used in conjunction with the
+		<var>headers</var> variable to control the column
+		displays. This is now controlled explicitly within the
+		templates.
+		<p></p>
+	      </dd>
+
+	      <dt><code>directory.ezt</code>:
+		<var>rev_in_front</var></dt>
+	      <dd>
+		This was used to indicate that revision links should
+		be used in the first column, rather than in their
+		standard place in the second column. Changing the
+		links should now be done in the template, rather than
+		according to this variable. You may want to look at
+		the <code>dir_alternate.ezt</code> template, which has
+		the revision in front.
+		<p></p>
+	      </dd>
+
+	      <dt><code>directory.ezt</code>:
+		<var>rows.attic</var>
+		and <var>rows.hide_attic_href</var></dt>
+	      <dd>
+		These variable were used to manage the hide and
+		showing of the contents of the <code>Attic/</code>
+		subdirectory. Several new variables were introduced
+		which can be used to replace this functionality:
+		<var>show_attic_href</var>,
+		<var>hide_attic_href</var>, and <var>rows.state</var>.
+		<p></p>
+	      </dd>
+	    </dl>
+	  </blockquote>
+    <hr>
+
+    <h2><a name="from7">Upgrading from ViewCVS 0.7 or earlier</a></h2>
+    <p>
+      This section discusses how to upgrade ViewCVS 0.7, or earlier,
+      to 0.8 or a later version of the software.
+    </p>
+    <p>
+      <strong>NOTE:</strong> these changes will bring you up to the
+      requirements of version 0.8. You must also follow the directions
+      for <a href="#from8">upgrading from 0.8</a>.
+    </p>
+
+    <h3>Configuration Options</h3>
+    <p>
+      The largest change from 0.7 to 0.8, that you will need to deal
+      with, is the introduction of templates. This shifted many
+      configuration file options into the templates, for more direct
+      editing of the output style, colors, and layout. Below is a list 
+      of options that no longer exist, and where you can find their
+      counterpart in the current version of ViewCVS.
+    </p>
+    <p>
+      The following options have all been removed in ViewCVS 0.8. If
+      you made local changes to your ViewCVS configuration, then you
+      will need to edit templates in the <code>templates/</code>
+      subdirectory.
+    </p>
+
+    <blockquote>
+      <dl>
+	<dt>
+	  The [text] section:
+	  <strong>short_intro</strong>,
+	  <strong>long_intro</strong>,
+	  and <strong>doc_info</strong>
+	</dt>
+	<dd>
+	  These options have been incorporated into the
+	  <code>doc/help_rootview.html</code> page and the
+	  <code>doc/help_dirview.html</code> page.
+
+	  <p></p>
+	</dd>
+
+	<dt><strong>repository_info</strong></dt>
+	<dd>
+	This option is now incorporated into the
+	<code>directory.ezt</code> template.
+
+	<p></p>
+	</dd>
+
+	<dt><strong>table_padding</strong></dt>
+	<dd>
+	  The table padding values can be changed in the
+	  <code>directory.ezt</code> template.
+
+	  <p></p>
+	</dd>
+
+	<dt><strong>table_border</strong></dt>
+	<dd>
+	  Edit <code>directory.ezt</code> to add a border around the
+	  directory table.
+
+	  <p></p>
+	</dd>
+
+	<dt>
+	  <strong>column_header_normal</strong> and
+	  <strong>column_header_sorted</strong>
+	</dt>
+	<dd>
+	  Edit <code>directory.ezt</code> to modify the colors of the
+	  column headers.
+
+	  <p></p>
+	</dd>
+
+	<dt>
+	  <strong>extern_window_width</strong> and
+	  <strong>extern_window_height</strong>
+	</dt>
+	<dd>
+	  These options were never used and have been removed.
+	  <p></p>
+	</dd>
+
+	<dt><strong>logo</strong></dt>
+	<dd>
+	  Edit the templates directly (<code>directory.ezt</code>,
+	  <code>log.ezt</code> or <code>log_table.ezt</code> and if
+	  needed <code>query.ezt</code>) to alter the URL and size of
+	  your logo.
+
+	  <p></p>
+	</dd>
+
+	<dt><strong>allow_version_select</strong></dt>
+	<dd>
+	  Edit the <code>log.ezt</code> template if you want to remove
+	  the link which allows the user to select a revision for a
+	  diff.
+
+	  <p></p>
+	</dd>
+
+	<dt><strong>input_text_size</strong></dt>
+	<dd>
+	  Edit the <code>log.ezt</code> template if you want to change
+	  the size of the entry box for revisions for performing
+	  diffs.
+
+	  <p></p>
+	</dd>
+
+	<dt><strong>even_odd</strong></dt>
+	<dd>
+	  Edit the <code>directory.ezt</code> and
+	  <code>query.ezt</code> templates if you want to change the
+	  colors of the rows in the directory and query result tables.
+
+          <p></p>
+	</dd>
+
+        <dt>Colors: <strong>text</strong>
+          and <strong>background</strong></dt>
+	<dd>
+	  These options have been incorporated into the
+	  <code>directory.ezt</code>, <code>log.ezt</code>, and
+	  <code>log_table.ezt</code> templates.
+
+	  <p></p>
+	</dd>
+
+      </dl>
+    </blockquote>
+
+  </td></tr></table>
+  <hr>
+  <address><a href="mailto:viewcvs at lyra.org">ViewCVS Users Group</a></address>
+<!-- Created: Mon Sep 24 04:23:53 PDT 2001 -->
+<!-- hhmts start -->
+Last modified: Sat Dec 22 20:05:14 PST 2001
+<!-- hhmts end -->
+</body>
+</html>

Added: trunk/gforge_base/evolvisforge/plugins.test/scmsvn/www/viewcvs/who.html
===================================================================
--- trunk/gforge_base/evolvisforge/plugins.test/scmsvn/www/viewcvs/who.html	                        (rev 0)
+++ trunk/gforge_base/evolvisforge/plugins.test/scmsvn/www/viewcvs/who.html	2010-02-26 00:19:01 UTC (rev 4850)
@@ -0,0 +1,61 @@
+<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
+<html>
+  <head>
+    <title>The ViewCVS Group</title>
+  </head>
+
+<body background="images/chalk.jpg">
+  <table width="100&#37;" cellspacing=5>
+    <tr>
+      <td width="1%"><a href="index.html"><img border=0
+	     src="images/logo.png"></a>
+      </td>
+      <td>
+	<h1>The ViewCVS Group</h1>
+      </td>
+      <td width="1%"><a href="http://sourceforge.net/"><img border=0
+	    src="http://sourceforge.net/sflogo.php?group_id=18760&type=1"></a><br><a href="http://sourceforge.net/projects/viewcvs/">ViewCVS&nbsp;project&nbsp;page</a>
+      </td>
+    </tr>
+    <tr><td width="1%" valign=top>
+       <a href="index.html">Overview</a><br>
+       <a href="upgrading.html">Upgrading</a><br>
+       <a href="contributing.html">Contributing</a><br>
+       <a href="license-1.html">License</a><br>
+       Who<br>
+    </td><td colspan=2>
+  
+
+    <p>
+      The ViewCVS Group is an informal group of people working on and
+      developing the ViewCVS package. The current set of members are:
+    </p>
+    <ul>
+      <li><a href="http://www.lyra.org/greg/"><b>Greg Stein</b></a></li>
+      <li>Tanaka Akira</li>
+      <li>Tim Cera</li>
+      <li>Peter Funk</li>
+      <li>Jay Painter</li>
+      <li>C. Michael Pilato</li>
+      <li>Russell Yanofsky</li>
+    </ul>
+    <p>
+    In 2001 the project has been moved to SourceForge and some 
+    <a href="http://sourceforge.net/project/memberlist.php?group_id=18760">more
+    developers</a> were given commit access.  
+    </p>
+    <p>
+      Please note that the <a href="./">ViewCVS</a> package is offered 
+      under a BSD-type license, which is detailed on the
+      <a href="license-1.html">ViewCVS License</a> page.
+    </p>
+  
+  </td></tr></table>
+  <hr>
+  <address><a href="mailto:viewcvs-dev at lyra.org">ViewCVS Group</a></address>
+<!-- Created: Mon May  8 19:08:58 PDT 2000 -->
+<!-- hhmts start -->
+Last modified: Thu Oct 25 01:47:02 PDT 2001
+<!-- hhmts end -->
+  </body>
+</html>

Added: trunk/gforge_base/evolvisforge/plugins.test/svncommitemail/bin/commit-email.pl
===================================================================
--- trunk/gforge_base/evolvisforge/plugins.test/svncommitemail/bin/commit-email.pl	                        (rev 0)
+++ trunk/gforge_base/evolvisforge/plugins.test/svncommitemail/bin/commit-email.pl	2010-02-26 00:19:01 UTC (rev 4850)
@@ -0,0 +1,592 @@
+#!/usr/bin/env perl
+
+# ====================================================================
+# commit-email.pl: send a commit email for commit REVISION in
+# repository REPOS to some email addresses.
+#
+# For usage, see the usage subroutine or run the script with no
+# command line arguments.
+#
+# $HeadURL: http://svn.collab.net/repos/svn/branches/1.1.x/tools/hook-scripts/commit-email.pl.in $
+# $LastChangedDate$
+# $LastChangedBy$
+# $LastChangedRevision$
+#    
+# ====================================================================
+# Copyright (c) 2000-2004 CollabNet.  All rights reserved.
+#
+# This software is licensed as described in the file COPYING, which
+# you should have received as part of this distribution.  The terms
+# are also available at http://subversion.tigris.org/license-1.html.
+# If newer versions of this license are posted there, you may use a
+# newer version instead, at your option.
+#
+# This software consists of voluntary contributions made by many
+# individuals.  For exact contribution history, see the revision
+# history and logs, available at http://subversion.tigris.org/.
+# ====================================================================
+
+# Turn on warnings the best way depending on the Perl version.
+BEGIN {                                                                         
+  if ( $] >= 5.006_000)                                                         
+    { require warnings; import warnings; }                
+  else                                                                          
+    { $^W = 1; }                                                  
+}                                                                               
+						
+use strict;
+use Carp;
+
+######################################################################
+# Configuration section.
+
+# Sendmail path.
+my $sendmail = "/usr/sbin/sendmail";
+
+# Svnlook path.
+my $svnlook = "/usr/bin/svnlook";
+
+# By default, when a file is deleted from the repository, svnlook diff
+# prints the entire contents of the file.  If you want to save space
+# in the log and email messages by not printing the file, then set
+# $no_diff_deleted to 1.
+my $no_diff_deleted = 0;
+
+# Since the path to svnlook depends upon the local installation
+# preferences, check that the required programs exist to insure that
+# the administrator has set up the script properly.
+{
+  my $ok = 1;
+  foreach my $program ($sendmail, $svnlook)
+    {
+      if (-e $program)
+        {
+          unless (-x $program)
+            {
+              warn "$0: required program `$program' is not executable, ",
+                   "edit $0.\n";
+              $ok = 0;
+            }
+        }
+      else
+        {
+          warn "$0: required program `$program' does not exist, edit $0.\n";
+          $ok = 0;
+        }
+    }
+  exit 1 unless $ok;
+}
+
+
+######################################################################
+# Initial setup/command-line handling.
+
+# Each value in this array holds a hash reference which contains the
+# associated email information for one project.  Start with an
+# implicit rule that matches all paths.
+my @project_settings_list = (&new_project);
+
+# Process the command line arguments till there are none left.  The
+# first two arguments that are not used by a command line option are
+# the repository path and the revision number.
+my $repos;
+my $rev;
+
+# Use the reference to the first project to populate.
+my $current_project = $project_settings_list[0];
+
+# This hash matches the command line option to the hash key in the
+# project.  If a key exists but has a false value (''), then the
+# command line option is allowed but requires special handling.
+my %opt_to_hash_key = ('--from' => 'from_address',
+                       '-h'     => 'hostname',
+                       '-l'     => 'log_file',
+                       '-m'     => '',
+                       '-r'     => 'reply_to',
+                       '-s'     => 'subject_prefix');
+
+while (@ARGV)
+  {
+    my $arg = shift @ARGV;
+    if ($arg =~ /^-/)
+      {
+        my $hash_key = $opt_to_hash_key{$arg};
+        unless (defined $hash_key)
+          {
+            die "$0: command line option `$arg' is not recognized.\n";
+          }
+
+        unless (@ARGV)
+          {
+            die "$0: command line option `$arg' is missing a value.\n";
+          }
+        my $value = shift @ARGV;
+
+        if ($hash_key)
+          {
+            $current_project->{$hash_key} = $value;
+          }
+        else
+          {
+            # Here handle -m.
+            unless ($arg eq '-m')
+              {
+                die "$0: internal error: should only handle -m here.\n";
+              }
+            $current_project                = &new_project;
+            $current_project->{match_regex} = $value;
+            push(@project_settings_list, $current_project);
+          }
+      }
+    elsif ($arg =~ /^-/)
+      {
+        die "$0: command line option `$arg' is not recognized.\n";
+      }
+    else
+      {
+        if (! defined $repos)
+          {
+            $repos = $arg;
+          }
+        elsif (! defined $rev)
+          {
+            $rev = $arg;
+          }
+        else
+          {
+            push(@{$current_project->{email_addresses}}, $arg);
+          }
+      }
+  }
+
+# If the revision number is undefined, then there were not enough
+# command line arguments.
+&usage("$0: too few arguments.") unless defined $rev;
+
+# Check the validity of the command line arguments.  Check that the
+# revision is an integer greater than 0 and that the repository
+# directory exists.
+unless ($rev =~ /^\d+/ and $rev > 0)
+  {
+    &usage("$0: revision number `$rev' must be an integer > 0.");
+  }
+unless (-e $repos)
+  {
+    &usage("$0: repos directory `$repos' does not exist.");
+  }
+unless (-d _)
+  {
+    &usage("$0: repos directory `$repos' is not a directory.");
+  }
+
+# Check that all of the regular expressions can be compiled and
+# compile them.
+{
+  my $ok = 1;
+  for (my $i=0; $i<@project_settings_list; ++$i)
+    {
+      my $match_regex = $project_settings_list[$i]->{match_regex};
+
+      # To help users that automatically write regular expressions
+      # that match the root directory using ^/, remove the / character
+      # because subversion paths, while they start at the root level,
+      # do not begin with a /.
+      $match_regex =~ s#^\^/#^#;
+
+      my $match_re;
+      eval { $match_re = qr/$match_regex/ };
+      if ($@)
+        {
+          warn "$0: -m regex #$i `$match_regex' does not compile:\n$@\n";
+          $ok = 0;
+          next;
+        }
+      $project_settings_list[$i]->{match_re} = $match_re;
+    }
+  exit 1 unless $ok;
+}
+
+######################################################################
+# Harvest data using svnlook.
+
+# Change into /tmp so that svnlook diff can create its .svnlook
+# directory.
+my $tmp_dir = '/tmp';
+chdir($tmp_dir)
+  or die "$0: cannot chdir `$tmp_dir': $!\n";
+
+# Get the author, date, and log from svnlook.
+my @svnlooklines = &read_from_process($svnlook, 'info', $repos, '-r', $rev);
+my $author = shift @svnlooklines;
+my $date = shift @svnlooklines;
+shift @svnlooklines;
+my @log = map { "$_\n" } @svnlooklines;
+
+# Figure out what directories have changed using svnlook.
+my @dirschanged = &read_from_process($svnlook, 'dirs-changed', $repos, 
+                                     '-r', $rev);
+
+# Lose the trailing slash in the directory names if one exists, except
+# in the case of '/'.
+my $rootchanged = 0;
+for (my $i=0; $i<@dirschanged; ++$i)
+  {
+    if ($dirschanged[$i] eq '/')
+      {
+        $rootchanged = 1;
+      }
+    else
+      {
+        $dirschanged[$i] =~ s#^(.+)[/\\]$#$1#;
+      }
+  }
+
+# Figure out what files have changed using svnlook.
+ at svnlooklines = &read_from_process($svnlook, 'changed', $repos, '-r', $rev);
+
+# Parse the changed nodes.
+my @adds;
+my @dels;
+my @mods;
+foreach my $line (@svnlooklines)
+  {
+    my $path = '';
+    my $code = '';
+
+    # Split the line up into the modification code and path, ignoring
+    # property modifications.
+    if ($line =~ /^(.).  (.*)$/)
+      {
+        $code = $1;
+        $path = $2;
+      }
+
+    if ($code eq 'A')
+      {
+        push(@adds, $path);
+      }
+    elsif ($code eq 'D')
+      {
+        push(@dels, $path);
+      }
+    else
+      {
+        push(@mods, $path);
+      }
+  }
+
+# Get the diff from svnlook.
+my @no_diff_deleted = $no_diff_deleted ? ('--no-diff-deleted') : ();
+my @difflines = &read_from_process($svnlook, 'diff', $repos,
+                                   '-r', $rev, @no_diff_deleted);
+
+######################################################################
+# Modified directory name collapsing.
+
+# Collapse the list of changed directories only if the root directory
+# was not modified, because otherwise everything is under root and
+# there's no point in collapsing the directories, and only if more
+# than one directory was modified.
+my $commondir = '';
+if (!$rootchanged and @dirschanged > 1)
+  {
+    my $firstline    = shift @dirschanged;
+    my @commonpieces = split('/', $firstline);
+    foreach my $line (@dirschanged)
+      {
+        my @pieces = split('/', $line);
+        my $i = 0;
+        while ($i < @pieces and $i < @commonpieces)
+          {
+            if ($pieces[$i] ne $commonpieces[$i])
+              {
+                splice(@commonpieces, $i, @commonpieces - $i);
+                last;
+              }
+            $i++;
+          }
+      }
+    unshift(@dirschanged, $firstline);
+
+    if (@commonpieces)
+      {
+        $commondir = join('/', @commonpieces);
+        my @new_dirschanged;
+        foreach my $dir (@dirschanged)
+          {
+            if ($dir eq $commondir)
+              {
+                $dir = '.';
+              }
+            else
+              {
+                $dir =~ s#^$commondir/##;
+              }
+            push(@new_dirschanged, $dir);
+          }
+        @dirschanged = @new_dirschanged;
+      }
+  }
+my $dirlist = join(' ', @dirschanged);
+
+######################################################################
+# Assembly of log message.
+
+# Put together the body of the log message.
+my @body;
+push(@body, "Author: $author\n");
+push(@body, "Date: $date\n");
+push(@body, "New Revision: $rev\n");
+push(@body, "\n");
+if (@adds)
+  {
+    @adds = sort @adds;
+    push(@body, "Added:\n");
+    push(@body, map { "   $_\n" } @adds);
+  }
+if (@dels)
+  {
+    @dels = sort @dels;
+    push(@body, "Removed:\n");
+    push(@body, map { "   $_\n" } @dels);
+  }
+if (@mods)
+  {
+    @mods = sort @mods;
+    push(@body, "Modified:\n");
+    push(@body, map { "   $_\n" } @mods);
+  }
+push(@body, "Log:\n");
+push(@body, @log);
+push(@body, "\n");
+push(@body, map { /[\r\n]+$/ ? $_ : "$_\n" } @difflines);
+
+# Go through each project and see if there are any matches for this
+# project.  If so, send the log out.
+foreach my $project (@project_settings_list)
+  {
+    my $match_re = $project->{match_re};
+    my $match    = 0;
+    foreach my $path (@dirschanged, @adds, @dels, @mods)
+      {
+        if ($path =~ $match_re)
+          {
+            $match = 1;
+            last;
+          }
+      }
+
+    next unless $match;
+
+    my @email_addresses = @{$project->{email_addresses}};
+    my $userlist        = join(' ', @email_addresses);
+    my $to              = join(', ', @email_addresses);
+    my $from_address    = $project->{from_address};
+    my $hostname        = $project->{hostname};
+    my $log_file        = $project->{log_file};
+    my $reply_to        = $project->{reply_to};
+    my $subject_prefix  = $project->{subject_prefix};
+    my $subject;
+
+    if ($commondir ne '')
+      {
+        $subject = "r$rev - in $commondir: $dirlist";
+      }
+    else
+      {
+        $subject = "r$rev - $dirlist";
+      }
+    if ($subject_prefix =~ /\w/)
+      {
+        $subject = "$subject_prefix $subject";
+      }
+    my $mail_from = $author;
+
+    if ($from_address =~ /\w/)
+      {
+        $mail_from = $from_address;
+      }
+    elsif ($hostname =~ /\w/)
+      {
+        $mail_from = "$mail_from\@$hostname";
+      }
+
+    my @head;
+    push(@head, "To: $to\n");
+    push(@head, "From: $mail_from\n");
+    push(@head, "Subject: $subject\n");
+    push(@head, "Reply-to: $reply_to\n") if $reply_to;
+
+    ### Below, we set the content-type etc, but see these comments
+    ### from Greg Stein on why this is not a full solution.
+    #
+    # From: Greg Stein <gstein at lyra.org>
+    # Subject: Re: svn commit: rev 2599 - trunk/tools/cgi
+    # To: dev at subversion.tigris.org
+    # Date: Fri, 19 Jul 2002 23:42:32 -0700
+    # 
+    # Well... that isn't strictly true. The contents of the files
+    # might not be UTF-8, so the "diff" portion will be hosed.
+    # 
+    # If you want a truly "proper" commit message, then you'd use
+    # multipart MIME messages, with each file going into its own part,
+    # and labeled with an appropriate MIME type and charset. Of
+    # course, we haven't defined a charset property yet, but no biggy.
+    # 
+    # Going with multipart will surely throw out the notion of "cut
+    # out the patch from the email and apply." But then again: the
+    # commit emailer could see that all portions are in the same
+    # charset and skip the multipart thang. 
+    # 
+    # etc etc
+    # 
+    # Basically: adding/tweaking the content-type is nice, but don't
+    # think that is the proper solution.
+    push(@head, "Content-Type: text/plain; charset=UTF-8\n");
+    push(@head, "Content-Transfer-Encoding: 8bit\n");
+
+    push(@head, "\n");
+
+    if ($sendmail =~ /\w/ and @email_addresses)
+      {
+        # Open a pipe to sendmail.
+        my $command = "$sendmail $userlist";
+        if (open(SENDMAIL, "| $command"))
+          {
+            print SENDMAIL @head, @body;
+            close SENDMAIL
+              or warn "$0: error in closing `$command' for writing: $!\n";
+          }
+        else
+          {
+            warn "$0: cannot open `| $command' for writing: $!\n";
+          }
+      }
+
+    # Dump the output to logfile (if its name is not empty).
+    if ($log_file =~ /\w/)
+      {
+        if (open(LOGFILE, ">> $log_file"))
+          {
+            print LOGFILE @head, @body;
+            close LOGFILE
+              or warn "$0: error in closing `$log_file' for appending: $!\n";
+          }
+        else
+          {
+            warn "$0: cannot open `$log_file' for appending: $!\n";
+          }
+      }
+  }
+
+exit 0;
+
+sub usage
+{
+  warn "@_\n" if @_;
+  die "usage: $0 REPOS REVNUM [[-m regex] [options] [email_addr ...]] ...\n",
+      "options are\n",
+      "  --from email_address  Email address for 'From:' (overrides -h)\n",
+      "  -h hostname           Hostname to append to author for 'From:'\n",
+      "  -l logfile            Append mail contents to this log file\n",
+      "  -m regex              Regular expression to match committed path\n",
+      "  -r email_address      Email address for 'Reply-To:'\n",
+      "  -s subject_prefix     Subject line prefix\n",
+      "\n",
+      "This script supports a single repository with multiple projects,\n",
+      "where each project receives email only for commits that modify that\n",
+      "project.  A project is identified by using the -m command line\n",
+      "with a regular expression argument.  If a commit has a path that\n",
+      "matches the regular expression, then the entire commit matches.\n",
+      "Any of the following -h, -l, -r and -s command line options and\n",
+      "following email addresses are associated with this project.  The\n",
+      "next -m resets the -h, -l, -r and -s command line options and the\n",
+      "list of email addresses.\n",
+      "\n",
+      "To support a single project conveniently, the script initializes\n",
+      "itself with an implicit -m . rule that matches any modifications\n",
+      "to the repository.  Therefore, to use the script for a single\n",
+      "project repository, just use the other comand line options and\n",
+      "a list of email addresses on the command line.  If you do not want\n",
+      "a project that matches the entire repository, then use a -m with a\n",
+      "regular expression before any other command line options or email\n",
+      "addresses.\n";
+}
+
+# Return a new hash data structure for a new empty project that
+# matches any modifications to the repository.
+sub new_project
+{
+  return {email_addresses => [],
+          from_address    => '',
+          hostname        => '',
+          log_file        => '',
+          match_regex     => '.',
+          reply_to        => '',
+          subject_prefix  => ''};
+}
+
+# Start a child process safely without using /bin/sh.
+sub safe_read_from_pipe
+{
+  unless (@_)
+    {
+      croak "$0: safe_read_from_pipe passed no arguments.\n";
+    }
+
+  my $pid = open(SAFE_READ, '-|');
+  unless (defined $pid)
+    {
+      die "$0: cannot fork: $!\n";
+    }
+  unless ($pid)
+    {
+      open(STDERR, ">&STDOUT")
+        or die "$0: cannot dup STDOUT: $!\n";
+      exec(@_)
+        or die "$0: cannot exec `@_': $!\n";
+    }
+  my @output;
+  while (<SAFE_READ>)
+    {
+      s/[\r\n]+$//;
+      push(@output, $_);
+    }
+  close(SAFE_READ);
+  my $result = $?;
+  my $exit   = $result >> 8;
+  my $signal = $result & 127;
+  my $cd     = $result & 128 ? "with core dump" : "";
+  if ($signal or $cd)
+    {
+      warn "$0: pipe from `@_' failed $cd: exit=$exit signal=$signal\n";
+    }
+  if (wantarray)
+    {
+      return ($result, @output);
+    }
+  else
+    {
+      return $result;
+    }
+}
+
+# Use safe_read_from_pipe to start a child process safely and return
+# the output if it succeeded or an error message followed by the output
+# if it failed.
+sub read_from_process
+{
+  unless (@_)
+    {
+      croak "$0: read_from_process passed no arguments.\n";
+    }
+  my ($status, @output) = &safe_read_from_pipe(@_);
+  if ($status)
+    {
+      return ("$0: `@_' failed with this output:", @output);
+    }
+  else
+    {
+      return @output;
+    }
+}


Property changes on: trunk/gforge_base/evolvisforge/plugins.test/svncommitemail/bin/commit-email.pl
___________________________________________________________________
Added: svn:executable
   + *

Added: trunk/gforge_base/evolvisforge/plugins.test/svncommitemail/common/SVNCommitEmailPlugin.class
===================================================================
--- trunk/gforge_base/evolvisforge/plugins.test/svncommitemail/common/SVNCommitEmailPlugin.class	                        (rev 0)
+++ trunk/gforge_base/evolvisforge/plugins.test/svncommitemail/common/SVNCommitEmailPlugin.class	2010-02-26 00:19:01 UTC (rev 4850)
@@ -0,0 +1,74 @@
+<?php
+
+/**
+ * SVNCommitEmailPlugin Class
+ *
+ *
+ * This file is part of GForge.
+ *
+ * GForge 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.
+ *
+ * GForge is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with GForge; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+ */
+
+class SVNCommitEmailPlugin extends Plugin {
+
+	function SVNCommitEmailPlugin () {
+		$this->Plugin() ;
+		$this->name = "svncommitemail" ;
+		$this->text = "svncommitemail" ;
+		$this->hooks[] = "groupisactivecheckbox" ; // The "use ..." checkbox in editgroupinfo
+		$this->hooks[] = "groupisactivecheckboxpost" ; //
+	}
+
+	function CallHook ($hookname, $params) {
+		global $use_svncommitemailplugin,$G_SESSION,$HTML;
+		$group_id=$params['group'];
+		if ($hookname == "groupisactivecheckbox") {
+			//Check if the group is active
+			// this code creates the checkbox in the project edit public info page to activate/deactivate the plugin
+			$group = &group_get_object($group_id);
+			if ($group->usesPlugin('scmsvn')) {
+				echo "<tr>";
+				echo "<td>";
+				echo ' <input type="CHECKBOX" name="use_svncommitemailplugin" value="1" ';
+				// CHECKED OR UNCHECKED?
+				if ( $group->usesPlugin ( $this->name ) ) {
+					echo "CHECKED";
+				}
+				echo "><br/>";
+				echo "</td>";
+				echo "<td>";
+				echo "<strong>Use ".$this->text." Plugin</strong>";
+				echo "</td>";
+				echo "</tr>";
+			}
+		} elseif ($hookname == "groupisactivecheckboxpost") {
+			// this code actually activates/deactivates the plugin after the form was submitted in the project edit public info page
+			$group = &group_get_object($group_id);
+			$use_svncommitemailplugin = getStringFromRequest('use_svncommitemailplugin');
+			if ( $use_svncommitemailplugin == 1 ) {
+				$group->setPluginUse ( $this->name );
+			} else {
+				$group->setPluginUse ( $this->name, false );
+			}
+		} 
+	}
+}
+
+// Local Variables:
+// mode: php
+// c-file-style: "bsd"
+// End:
+
+?>

Added: trunk/gforge_base/evolvisforge/plugins.test/svncommitemail/common/svncommitemail-init.php
===================================================================
--- trunk/gforge_base/evolvisforge/plugins.test/svncommitemail/common/svncommitemail-init.php	                        (rev 0)
+++ trunk/gforge_base/evolvisforge/plugins.test/svncommitemail/common/svncommitemail-init.php	2010-02-26 00:19:01 UTC (rev 4850)
@@ -0,0 +1,49 @@
+<?php
+
+/**
+ * This file is part of GForge.
+ *
+ * GForge 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.
+ *
+ * GForge is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with GForge; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+ */
+
+global $sys_plugins_path;
+
+$found = false;
+if (is_dir($sys_plugins_path.'/svncommitemail/common/')) {
+	if (is_file($sys_plugins_path.'/svncommitemail/common/SVNCommitEmailPlugin.class')) {
+		require_once ($sys_plugins_path.'/svncommitemail/common/SVNCommitEmailPlugin.class') ;
+		$found = true;
+	}
+} else {
+	if (is_file($sys_plugins_path.'/svncommitemail/include/SVNCommitEmailPlugin.class')) {
+		require_once ($sys_plugins_path.'/svncommitemail/include/SVNCommitEmailPlugin.class') ;
+		$found = true;
+	}
+}
+
+if ($found) {
+	$SVNCommitEmailPlugin = new SVNCommitEmailPlugin() ;
+	register_plugin ($SVNCommitEmailPlugin) ;	
+} else {
+	echo 'Plugin svncommitemail not found';
+}
+
+
+// Local Variables:
+// mode: php
+// c-file-style: "bsd"
+// End:
+
+?>

Added: trunk/gforge_base/evolvisforge/plugins.test/svncommitemail/include/SVNCommitEmailPlugin.class
===================================================================
--- trunk/gforge_base/evolvisforge/plugins.test/svncommitemail/include/SVNCommitEmailPlugin.class	                        (rev 0)
+++ trunk/gforge_base/evolvisforge/plugins.test/svncommitemail/include/SVNCommitEmailPlugin.class	2010-02-26 00:19:01 UTC (rev 4850)
@@ -0,0 +1,74 @@
+<?php
+
+/**
+ * SVNCommitEmailPlugin Class
+ *
+ *
+ * This file is part of GForge.
+ *
+ * GForge 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.
+ *
+ * GForge is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with GForge; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+ */
+
+class SVNCommitEmailPlugin extends Plugin {
+
+	function SVNCommitEmailPlugin () {
+		$this->Plugin() ;
+		$this->name = "svncommitemail" ;
+		$this->text = "svncommitemail" ;
+		$this->hooks[] = "groupisactivecheckbox" ; // The "use ..." checkbox in editgroupinfo
+		$this->hooks[] = "groupisactivecheckboxpost" ; //
+	}
+
+	function CallHook ($hookname, $params) {
+		global $use_svncommitemailplugin,$G_SESSION,$HTML;
+		$group_id=$params['group'];
+		if ($hookname == "groupisactivecheckbox") {
+			//Check if the group is active
+			// this code creates the checkbox in the project edit public info page to activate/deactivate the plugin
+			$group = &group_get_object($group_id);
+			if ($group->usesPlugin('scmsvn')) {
+				echo "<tr>";
+				echo "<td>";
+				echo ' <input type="CHECKBOX" name="use_svncommitemailplugin" value="1" ';
+				// CHECKED OR UNCHECKED?
+				if ( $group->usesPlugin ( $this->name ) ) {
+					echo "CHECKED";
+				}
+				echo "><br/>";
+				echo "</td>";
+				echo "<td>";
+				echo "<strong>Use ".$this->text." Plugin</strong>";
+				echo "</td>";
+				echo "</tr>";
+			}
+		} elseif ($hookname == "groupisactivecheckboxpost") {
+			// this code actually activates/deactivates the plugin after the form was submitted in the project edit public info page
+			$group = &group_get_object($group_id);
+			$use_svncommitemailplugin = getStringFromRequest('use_svncommitemailplugin');
+			if ( $use_svncommitemailplugin == 1 ) {
+				$group->setPluginUse ( $this->name );
+			} else {
+				$group->setPluginUse ( $this->name, false );
+			}
+		} 
+	}
+}
+
+// Local Variables:
+// mode: php
+// c-file-style: "bsd"
+// End:
+
+?>

Added: trunk/gforge_base/evolvisforge/plugins.test/svncommitemail/include/svncommitemail-init.php
===================================================================
--- trunk/gforge_base/evolvisforge/plugins.test/svncommitemail/include/svncommitemail-init.php	                        (rev 0)
+++ trunk/gforge_base/evolvisforge/plugins.test/svncommitemail/include/svncommitemail-init.php	2010-02-26 00:19:01 UTC (rev 4850)
@@ -0,0 +1,47 @@
+<?php
+
+/**
+ * This file is part of GForge.
+ *
+ * GForge 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.
+ *
+ * GForge is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with GForge; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+ */
+
+global $sys_plugins_path;
+
+if (is_dir($sys_plugins_path.'/svncommitemail/common/')) {
+	if (is_file($sys_plugins_path.'/svncommitemail/common/SVNCommitEmailPlugin.class')) {
+		require_once ($sys_plugins_path.'/svncommitemail/common/SVNCommitEmailPlugin.class') ;
+		$found = true;
+	}
+} else {
+	if (is_file($sys_plugins_path.'/svncommitemail/include/SVNCommitEmailPlugin.class')) {
+		require_once ($sys_plugins_path.'/svncommitemail/include/SVNCommitEmailPlugin.class') ;
+		$found = true;
+	}
+}
+
+if ($found) {
+	$SVNCommitEmailPlugin = new SVNCommitEmailPlugin() ;
+	register_plugin ($SVNCommitEmailPlugin) ;	
+} else {
+	echo 'Plugin svncommitemail not found';
+}
+
+// Local Variables:
+// mode: php
+// c-file-style: "bsd"
+// End:
+
+?>




More information about the evolvis-commits mailing list