From 563b0f27dca6ff00a9ff69dc463911bfbd78e499 Mon Sep 17 00:00:00 2001
From: Michael Hanson <mihanson@linhes.org>
Date: Wed, 7 Sep 2011 16:45:49 +0000
Subject: libhdhomerun: Update to 20110830

---
 abs/core/libhdhomerun/PKGBUILD | 43 +++++++++++++++++++++++++-----------------
 1 file changed, 26 insertions(+), 17 deletions(-)

diff --git a/abs/core/libhdhomerun/PKGBUILD b/abs/core/libhdhomerun/PKGBUILD
index 7bd3a2a..530cb7e 100644
--- a/abs/core/libhdhomerun/PKGBUILD
+++ b/abs/core/libhdhomerun/PKGBUILD
@@ -1,6 +1,7 @@
 pkgname=libhdhomerun	
-pkgver=20110323
-pkgrel=2
+pkgver=20110830
+_altver=20110729
+pkgrel=1
 pkgdesc="utils and firmware needed for the hdhomerun"
 arch=('i686' 'x86_64')
 url="http://www.silicondust.com"
@@ -8,12 +9,15 @@ license=('GPL3')
 #makedepends=('gtk2')
 #optdepends=('gtk2: for using hdhomerun_config_gui')
 replaces=('hdhomerun')
-_firmware1=hdhomerun_atsc_firmware_${pkgver}.bin
-_firmware2=hdhomerun_dvbt_firmware_${pkgver}.bin
-_firmware3=hdhomerun_tech_atsc_firmware_${pkgver}.bin
-_firmware4=hdhomerun3_atsc_firmware_${pkgver}.bin
-_firmware5=hdhomerun3_dvbt_firmware_${pkgver}.bin
-_firmware6=hdhomerun3_dvbtc_firmware_${pkgver}.bin
+_firmware1=hdhomerun_atsc_firmware_${_altver}.bin
+_firmware2=hdhomerun_dvbt_firmware_${_altver}.bin
+_firmware3=hdhomerun3_atsc_firmware_${_altver}.bin
+_firmware4=hdhomerun3_dvbt_firmware_${_altver}.bin
+_firmware5=hdhomerun3_dvbtc_firmware_${_altver}.bin
+_firmware6=hdhomerun3_cablecard_firmware_${pkgver}.bin
+_firmware7=hdhomerun_tech_atsc_firmware_${_altver}.bin
+_firmware8=hdhomerun3_tech_atsc_firmware_${_altver}.bin
+_firmware9=hdhomerun3_tech_dvbtc_firmware_${_altver}.bin
 _url2=http://download.silicondust.com/hdhomerun
 source=("${_url2}/libhdhomerun_${pkgver}.tgz"
         "${_url2}/${_firmware1}"
@@ -21,7 +25,10 @@ source=("${_url2}/libhdhomerun_${pkgver}.tgz"
         "${_url2}/${_firmware3}"
         "${_url2}/${_firmware4}"
         "${_url2}/${_firmware5}"
-        "${_url2}/${_firmware6}")
+        "${_url2}/${_firmware6}"
+        "${_url2}/${_firmware7}"
+        "${_url2}/${_firmware8}"
+        "${_url2}/${_firmware9}")
         #"${_url2}/hdhomerun_config_gui_${pkgver}.tgz")
 
 build() {
@@ -48,11 +55,13 @@ package() {
     install -D ${srcdir}/${file} ${pkgdir}/lib/firmware/
    done
 }
-md5sums=('5d318777b7779aafd2427bdd57775613'
-         'c9baa14996a50a5a2d22d58c4f424b01'
-         '22675bda3f1c7a7771068318bdbda288'
-         '829ca4319fbafaf327cac4516c72635a'
-         '6da45e1d2759d4da790c75ee107103f2'
-         '8d3852ff7454c0a0eb4c6783c30b5a4e'
-         'a3c0a626d56582728c2f853090973aea')
-         #'b6512efae4ad3cf4ee43b9d6d11ac629')
+md5sums=('44b7f164b3d5aa8c555cf59aeeab6ee1'
+         'c168642982c069b0bc40554cb3986e49'
+         '300e16a29f182ef94486d920a5909e3e'
+         'f4b1341a593ae597a39c10cd81522dad'
+         '1a45959ffee80acaaeb5fa81296acd20'
+         'b63f0cd1c632603a8bc68f63565176b2'
+         'e3ae2597dceda376d987584a23fdbdf5'
+         '9c608d02dd6de39e55714887b38ca37a'
+         'f9303c9c8d90305b2da9855d327285bc'
+         'd517f629b01735037c10cf89d84a3215')
-- 
cgit v0.12


From 1863883b8ebddba0e45a88ed94d6e555cca31e91 Mon Sep 17 00:00:00 2001
From: Britney Fransen <brfransen@gmail.com>
Date: Wed, 7 Sep 2011 20:54:06 -0500
Subject: python-imaging: compile against python2.6 and libjpeg 8

---
 abs/core/python_modules/python-imaging/PKGBUILD    | 7 +++----
 abs/core/python_modules/python-imaging/__changelog | 3 +--
 2 files changed, 4 insertions(+), 6 deletions(-)

diff --git a/abs/core/python_modules/python-imaging/PKGBUILD b/abs/core/python_modules/python-imaging/PKGBUILD
index f0b5f3a..d644a4c 100644
--- a/abs/core/python_modules/python-imaging/PKGBUILD
+++ b/abs/core/python_modules/python-imaging/PKGBUILD
@@ -4,7 +4,7 @@
 
 pkgname=python-imaging
 pkgver=1.1.7
-pkgrel=5
+pkgrel=6
 pkgdesc="PIL. Provides image processing capabilities for python"
 arch=('i686' 'x86_64')
 url="http://www.pythonware.com/products/pil/index.htm"
@@ -20,15 +20,14 @@ md5sums=('fc14a54e1ce02a0225be8854bfba478e')
 
 build() {
   cd $srcdir/Imaging-$pkgver
-  sed -i "s#JPEG_ROOT\ =\ None#JPEG_ROOT\ =\ \"/opt/libjpeg6/lib\",\ \"/opt/libjpeg6/include\"#" setup.py
   python2 setup.py build_ext
 }
 
 package() {
   cd $srcdir/Imaging-$pkgver
   python2 setup.py install --root=$pkgdir
-  install -dm755 $pkgdir/usr/include/python2.7/
-  install -m644 -t $pkgdir/usr/include/python2.7/ libImaging/*.h 
+  install -dm755 $pkgdir/usr/include/python2.6/
+  install -m644 -t $pkgdir/usr/include/python2.6/ libImaging/*.h 
 
   # do not have files ending in .py in /usr/bin
   for f in pildriver pilprint pilconvert pilfile pilfont; do
diff --git a/abs/core/python_modules/python-imaging/__changelog b/abs/core/python_modules/python-imaging/__changelog
index 91214ed..de150f5 100644
--- a/abs/core/python_modules/python-imaging/__changelog
+++ b/abs/core/python_modules/python-imaging/__changelog
@@ -1,2 +1 @@
-__change so that it builds against libjpeg6 and not libjpeg7
-  sed -i "s#JPEG_ROOT\ =\ None#JPEG_ROOT\ =\ \"/opt/libjpeg6\"#" setup.py
+__change so that it builds against python2.6 instead of python2.7
-- 
cgit v0.12


From 67dda43da082345f0419361237b271da3bd519a9 Mon Sep 17 00:00:00 2001
From: Cecil <knoppmyth@gmail.com>
Date: Wed, 14 Sep 2011 22:06:31 -0700
Subject: mythtv:latest -fixes

---
 abs/core/mythtv/stable-0.24/mythtv/PKGBUILD | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/abs/core/mythtv/stable-0.24/mythtv/PKGBUILD b/abs/core/mythtv/stable-0.24/mythtv/PKGBUILD
index ab70bcd..2f9970a 100755
--- a/abs/core/mythtv/stable-0.24/mythtv/PKGBUILD
+++ b/abs/core/mythtv/stable-0.24/mythtv/PKGBUILD
@@ -6,7 +6,7 @@
 
 pkgname=mythtv
 pkgver=0.24
-pkgrel=21
+pkgrel=22
 pkgdesc="A Homebrew PVR project"
 arch=('i686' 'x86_64')
 url="http://www.mythtv.org/"
-- 
cgit v0.12


From ff64e6d438831823f1c99e71e3fb5e369b86926f Mon Sep 17 00:00:00 2001
From: Britney Fransen <brfransen@gmail.com>
Date: Fri, 16 Sep 2011 23:11:08 -0500
Subject: fluxbox: update keys for mythtv-setup to run as user

---
 abs/core/fluxbox/PKGBUILD | 4 ++--
 abs/core/fluxbox/keys     | 2 +-
 2 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/abs/core/fluxbox/PKGBUILD b/abs/core/fluxbox/PKGBUILD
index 4ca4e8a..6caea3f 100644
--- a/abs/core/fluxbox/PKGBUILD
+++ b/abs/core/fluxbox/PKGBUILD
@@ -3,7 +3,7 @@
 
 pkgname=fluxbox
 pkgver=1.3.1
-pkgrel=2
+pkgrel=3
 pkgdesc="A lightweight and highly-configurable window manager"
 arch=('i686' 'x86_64')
 url="http://www.fluxbox.org"
@@ -35,5 +35,5 @@ package() {
 }
 md5sums=('0eaa940a69c0a876a520bb85d67b8bec'
          'eeae9c88a2526ac0bd8afcd9ce97f9ed'
-         'd201812779a3e66c81b9ca753af39396'
+         'f46ddb76de4766a7a31a98d0205c330f'
          '7d2fff845c9f951e925b9adcd1053242')
diff --git a/abs/core/fluxbox/keys b/abs/core/fluxbox/keys
index 3a4dfa7..a2bfd93 100644
--- a/abs/core/fluxbox/keys
+++ b/abs/core/fluxbox/keys
@@ -29,7 +29,7 @@ Mod1 F10 :Workspace 10
 Mod1 F11 :Workspace 11
 Mod1 F12 :Workspace 12
 Mod1 x :ExecCommand tvterm.sh
-Mod1 s :ExecCommand sudo taskset -c 0 mythtv-setup
+Mod1 s :ExecCommand mythtv-setup
 #Mod1 m :ExecCommand mythfrontend --logfile /var/log/mythtv/mythfrontend.log
 Mod1 m :ExecCommand /usr/LH/bin/mythfrontend-start
 Mod1 1 :ExecCommand sudo sv start mythbackend
-- 
cgit v0.12


From ebef2b2f6247ea0d1cae2202f466bbdce3226f33 Mon Sep 17 00:00:00 2001
From: Britney Fransen <brfransen@gmail.com>
Date: Sun, 18 Sep 2011 00:22:27 -0500
Subject: hauppauge-hvr-firmware: removed. replaced by linux-firmware and
 dvb-firmware

---
 abs/core/hauppauge-hvr-firmware/PKGBUILD | 24 ------------------------
 1 file changed, 24 deletions(-)
 delete mode 100755 abs/core/hauppauge-hvr-firmware/PKGBUILD

diff --git a/abs/core/hauppauge-hvr-firmware/PKGBUILD b/abs/core/hauppauge-hvr-firmware/PKGBUILD
deleted file mode 100755
index f9a488d..0000000
--- a/abs/core/hauppauge-hvr-firmware/PKGBUILD
+++ /dev/null
@@ -1,24 +0,0 @@
-pkgname=hauppauge-hvr-firmware
-pkgver=1
-pkgrel=3
-pkgdesc="firmware needed for the hvr cards"
-arch=(i686 x86_64)
-url=""
-makedepends='unzip'
-source=("http://steventoth.net/linux/hvr1800/HVR-12x0-14x0-17x0_1_25_25271_WHQL.zip"
-        "http://steventoth.net/linux/hvr1400/xc3028L-v36.fw")
-md5sums=('7fe395c1a398f079d98e416ee7be3777'
-         '5260975b76ade7a1d37270129b6d6372')
-
-build() {
-  cd $startdir || return 1
-  mkdir -p $startdir/pkg/lib/firmware
-  unzip -jo HVR-12x0-14x0-17x0_1_25_25271_WHQL.zip  Driver85/hcw85enc.rom
-  unzip -jo HVR-12x0-14x0-17x0_1_25_25271_WHQL.zip Driver85/hcw85mlC.rom
-  cd $startdir/src/Driver85
-  mv hcw85enc.rom v4l-cx23885-enc.fw
-  mv hcw85mlC.rom v4l-cx23885-avcore-01.fw
-  cp -rp *.fw  $startdir/pkg/lib/firmware
-  cd $startdir/src/
-  cp *.fw  $startdir/pkg/lib/firmware
-}
-- 
cgit v0.12


From 65ee8aef7895a0b077b92ec5f37913051223b434 Mon Sep 17 00:00:00 2001
From: Britney Fransen <brfransen@gmail.com>
Date: Sun, 18 Sep 2011 00:37:50 -0500
Subject: alsa-firmware: Bump to latest

---
 abs/extra/alsa-firmware/PKGBUILD | 38 +++++++++++++++++++++-----------------
 1 file changed, 21 insertions(+), 17 deletions(-)

diff --git a/abs/extra/alsa-firmware/PKGBUILD b/abs/extra/alsa-firmware/PKGBUILD
index d9c890b..af2c544 100644
--- a/abs/extra/alsa-firmware/PKGBUILD
+++ b/abs/extra/alsa-firmware/PKGBUILD
@@ -1,8 +1,8 @@
-# $Id: PKGBUILD 79046 2010-04-30 05:38:39Z tpowa $
+# $Id$
 # Contributor: Jochen Immendörfer <jochen dot immendoerfer at gmail dot com>
 # Package Maintainer: Tobias Powalowski <tpowa@archlinux.org>
 pkgname=alsa-firmware
-pkgver=1.0.23
+pkgver=1.0.24.1
 pkgrel=1
 pkgdesc="ALSA firmware package"
 arch=('i686' 'x86_64')
@@ -14,20 +14,24 @@ options=(!strip)
 build() {
   cd $srcdir/$pkgname-$pkgver
   ./configure --prefix=/usr
-  make || return 1
-  make DESTDIR=$pkgdir install || return 1
+  make
+}
+
+package() {
+  cd $srcdir/$pkgname-$pkgver
+  make DESTDIR=$pkgdir install
   # remove files which conflicts with kernel26-firmware
-  rm -rf ${pkgdir}/lib/firmware/ess/maestro3_assp_kernel.fw || return 1
-  rm -rf ${pkgdir}/lib/firmware/ess/maestro3_assp_minisrc.fw || return 1
-  rm -rf ${pkgdir}/lib/firmware/korg/k1212.dsp || return 1
-  rm -rf ${pkgdir}/lib/firmware/sb16/alaw_main.csp || return 1
-  rm -rf ${pkgdir}/lib/firmware/sb16/ima_adpcm_capture.csp || return 1
-  rm -rf ${pkgdir}/lib/firmware/sb16/ima_adpcm_init.csp || return 1
-  rm -rf ${pkgdir}/lib/firmware/sb16/ima_adpcm_playback.csp || return 1
-  rm -rf ${pkgdir}/lib/firmware/sb16/mulaw_main.csp || return 1
-  rm -rf ${pkgdir}/lib/firmware/yamaha/ds1_ctrl.fw || return 1
-  rm -rf ${pkgdir}/lib/firmware/yamaha/ds1_dsp.fw || return 1
-  rm -rf ${pkgdir}/lib/firmware/yamaha/ds1e_ctrl.fw || return 1
-  rm -rf ${pkgdir}/lib/firmware/yamaha/yss225_registers.bin || return 1
+  rm -rf ${pkgdir}/lib/firmware/ess/maestro3_assp_kernel.fw
+  rm -rf ${pkgdir}/lib/firmware/ess/maestro3_assp_minisrc.fw
+  rm -rf ${pkgdir}/lib/firmware/korg/k1212.dsp
+  rm -rf ${pkgdir}/lib/firmware/sb16/alaw_main.csp
+  rm -rf ${pkgdir}/lib/firmware/sb16/ima_adpcm_capture.csp
+  rm -rf ${pkgdir}/lib/firmware/sb16/ima_adpcm_init.csp
+  rm -rf ${pkgdir}/lib/firmware/sb16/ima_adpcm_playback.csp
+  rm -rf ${pkgdir}/lib/firmware/sb16/mulaw_main.csp
+  rm -rf ${pkgdir}/lib/firmware/yamaha/ds1_ctrl.fw
+  rm -rf ${pkgdir}/lib/firmware/yamaha/ds1_dsp.fw
+  rm -rf ${pkgdir}/lib/firmware/yamaha/ds1e_ctrl.fw
+  rm -rf ${pkgdir}/lib/firmware/yamaha/yss225_registers.bin
 }
-md5sums=('e3f755331d6d485f6fd697249b90f877')
+md5sums=('d37434dfcfececd8581d2f0bbe2fcf1b')
-- 
cgit v0.12


From 0d123a378cf237a185c7eee7301dd01542f921a3 Mon Sep 17 00:00:00 2001
From: Britney Fransen <brfransen@gmail.com>
Date: Sun, 18 Sep 2011 13:16:55 -0500
Subject: dvb-firmware: add firmware for Hauppauge HVR-22xx

---
 abs/core/dvb-firmware/PKGBUILD          |   4 ++--
 abs/core/dvb-firmware/dvb-usb-af9015.fw | Bin 15913 -> 0 bytes
 2 files changed, 2 insertions(+), 2 deletions(-)
 delete mode 100644 abs/core/dvb-firmware/dvb-usb-af9015.fw

diff --git a/abs/core/dvb-firmware/PKGBUILD b/abs/core/dvb-firmware/PKGBUILD
index 614060c..2150e6f 100644
--- a/abs/core/dvb-firmware/PKGBUILD
+++ b/abs/core/dvb-firmware/PKGBUILD
@@ -3,7 +3,7 @@
 
 pkgname=dvb-firmware
 pkgver=1
-pkgrel=11
+pkgrel=12
 pkgdesc="Firmware for DVB cards"
 arch=('i586' 'i686' 'x86_64')
 url="http://linuxtv.org/"
@@ -14,4 +14,4 @@ build() {
   mkdir -p $startdir/pkg/lib/firmware
   cp -a dvb-fw/* $startdir/pkg/lib/firmware
 }
-md5sums=('25c77369112a6f682d87c3f7dcbe028c')
+md5sums=('de87b810a42016a0c81cfc0abaecb19e')
diff --git a/abs/core/dvb-firmware/dvb-usb-af9015.fw b/abs/core/dvb-firmware/dvb-usb-af9015.fw
deleted file mode 100644
index 0014181..0000000
Binary files a/abs/core/dvb-firmware/dvb-usb-af9015.fw and /dev/null differ
-- 
cgit v0.12


From 0ee2824a5f1c1cfe961310f5cd645716bbb43861 Mon Sep 17 00:00:00 2001
From: Britney Fransen <brfransen@gmail.com>
Date: Sun, 18 Sep 2011 14:05:44 -0500
Subject: wget: Bump to latest

---
 abs/core/wget/PKGBUILD                    | 36 ++++++++++++++++++++++---------
 abs/core/wget/wget-1.12-2-i686.pkg.tar.gz |  1 -
 abs/core/wget/wget.install                |  2 +-
 3 files changed, 27 insertions(+), 12 deletions(-)
 delete mode 120000 abs/core/wget/wget-1.12-2-i686.pkg.tar.gz

diff --git a/abs/core/wget/PKGBUILD b/abs/core/wget/PKGBUILD
index eb13f03..44a6477 100644
--- a/abs/core/wget/PKGBUILD
+++ b/abs/core/wget/PKGBUILD
@@ -1,10 +1,10 @@
-# $Id: PKGBUILD 75183 2010-04-01 01:40:17Z pierre $
+# $Id$
 # Maintainer: Allan McRae <allan@archlinux.org>
 # Contributor: Judd Vinet <jvinet@zeroflux.org>
 
 pkgname=wget
-pkgver=1.12
-pkgrel=3
+pkgver=1.13.4
+pkgrel=1
 pkgdesc="A network utility to retrieve files from the Web"
 arch=('i686' 'x86_64')
 url="http://www.gnu.org/software/wget/wget.html"
@@ -14,16 +14,32 @@ depends=('glibc' 'openssl')
 optdepends=('ca-certificates: HTTPS downloads')
 backup=('etc/wgetrc')
 install=wget.install
-source=(ftp://ftp.gnu.org/gnu/$pkgname/$pkgname-$pkgver.tar.gz)
-md5sums=('141461b9c04e454dc8933c9d1f2abf83')
+source=(ftp://ftp.gnu.org/gnu/${pkgname}/${pkgname}-${pkgver}.tar.xz)
+md5sums=('7f518b3a71e9efd330e9a0c3714f8463')
 
 build() {
-  cd ${srcdir}/$pkgname-$pkgver
-  ./configure --prefix=/usr --sysconfdir=/etc
-  make || return 1
+  cd "${srcdir}/${pkgname}-${pkgver}"
+
+  # Note : We do not build with --enable-nls, because there is a bug in wget causing
+  # international domain names to be not properly converted to punycode if
+  # the current locale is a UTF-8 one
+  # See : http://lists.gnu.org/archive/html/bug-wget/2011-02/msg00026.html
+
+  ./configure -with-ssl=openssl --prefix=/usr --sysconfdir=/etc
+  make
 }
 
 package() {
-  cd ${srcdir}/$pkgname-$pkgver
-  make DESTDIR=${pkgdir} install
+  cd "${srcdir}/${pkgname}-${pkgver}"
+  make DESTDIR="${pkgdir}" install
+
+  cat >> "$pkgdir/etc/wgetrc" <<EOF
+
+# default root certs location
+ca_certificate=/etc/ssl/certs/ca-certificates.crt
+EOF
+
+  # remove IRI option from wgetrc as it does not work (see above)
+  sed -i '118,120d' $pkgdir/etc/wgetrc
+
 }
diff --git a/abs/core/wget/wget-1.12-2-i686.pkg.tar.gz b/abs/core/wget/wget-1.12-2-i686.pkg.tar.gz
deleted file mode 120000
index 6fc2266..0000000
--- a/abs/core/wget/wget-1.12-2-i686.pkg.tar.gz
+++ /dev/null
@@ -1 +0,0 @@
-/data/pkg_repo/packages/wget-1.12-2-i686.pkg.tar.gz
\ No newline at end of file
diff --git a/abs/core/wget/wget.install b/abs/core/wget/wget.install
index 1715333..8eb6a2c 100644
--- a/abs/core/wget/wget.install
+++ b/abs/core/wget/wget.install
@@ -1,4 +1,4 @@
-infodir=/usr/share/info
+infodir=usr/share/info
 filelist=(wget.info)
 
 post_install() {
-- 
cgit v0.12


From 1e5c50094bd2895bb9aca51e45f8f1171166c9ce Mon Sep 17 00:00:00 2001
From: Britney Fransen <brfransen@gmail.com>
Date: Sun, 18 Sep 2011 14:14:25 -0500
Subject: geoip: Bump to latest. Ref #778

---
 abs/extra/geoip/PKGBUILD | 30 ++++++++++++++++--------------
 1 file changed, 16 insertions(+), 14 deletions(-)

diff --git a/abs/extra/geoip/PKGBUILD b/abs/extra/geoip/PKGBUILD
index 936aa57..32c5927 100644
--- a/abs/extra/geoip/PKGBUILD
+++ b/abs/extra/geoip/PKGBUILD
@@ -1,34 +1,36 @@
-# $Id: PKGBUILD 40078 2009-05-27 06:04:17Z juergen $
+# $Id$
 # Maintainer: Dan McGee <dan@archlinux.org>
 # Contributor: Manolis Tzanidakis <manolis@archlinux.org>
 
 pkgname=geoip
-pkgver=1.4.7
+pkgver=1.4.8
 pkgrel=1
 pkgdesc="Non-DNS IP-to-country resolver C library & utils"
-arch=(i686 x86_64)
-license=('GPL')
+arch=('i686' 'x86_64')
 url="http://www.maxmind.com/app/c"
+license=('GPL')
 depends=('zlib')
-backup=(etc/geoip/GeoIP.conf)
+backup=('etc/geoip/GeoIP.conf')
 options=('!libtool')
 source=(http://www.maxmind.com/download/geoip/api/c/GeoIP-${pkgver}.tar.gz)
+md5sums=('05b7300435336231b556df5ab36f326d')
 
 build() {
-  cd ${srcdir}/GeoIP-${pkgver}
+  cd "${srcdir}/GeoIP-${pkgver}"
+
+  autoreconf -i
   ./configure --prefix=/usr --mandir=/usr/share/man --sysconfdir=/etc/geoip
-  make || return 1
+  make
 }
 
 check() {
-
-  cd ${srcdir}/GeoIP-${pkgver}
-  make check || return 1
-
+  cd "${srcdir}/GeoIP-${pkgver}"
+  make check
 }
 
 package() {
-  cd ${srcdir}/GeoIP-${pkgver}
-  make DESTDIR=${startdir}/pkg install
+  cd "${srcdir}/GeoIP-${pkgver}"
+  make DESTDIR="${pkgdir}" install
 }
-md5sums=('a802175d5b7e2b57b540a7dd308d9205')
+
+# vim:set ts=2 sw=2 et:
-- 
cgit v0.12


From 622f8dd5cb4f4ad95b42f8929a0265d13dc61cc1 Mon Sep 17 00:00:00 2001
From: Britney Fransen <brfransen@gmail.com>
Date: Sun, 18 Sep 2011 17:44:42 -0500
Subject: dvb-firmware: added firmware NXP7164-2010-03-10.1.fw for HVR-22xx

---
 abs/core/dvb-firmware/PKGBUILD | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/abs/core/dvb-firmware/PKGBUILD b/abs/core/dvb-firmware/PKGBUILD
index 2150e6f..64fc01e 100644
--- a/abs/core/dvb-firmware/PKGBUILD
+++ b/abs/core/dvb-firmware/PKGBUILD
@@ -3,7 +3,7 @@
 
 pkgname=dvb-firmware
 pkgver=1
-pkgrel=12
+pkgrel=13
 pkgdesc="Firmware for DVB cards"
 arch=('i586' 'i686' 'x86_64')
 url="http://linuxtv.org/"
@@ -14,4 +14,4 @@ build() {
   mkdir -p $startdir/pkg/lib/firmware
   cp -a dvb-fw/* $startdir/pkg/lib/firmware
 }
-md5sums=('de87b810a42016a0c81cfc0abaecb19e')
+md5sums=('32e19e3f9f849e667c6f7db1186180b9')
-- 
cgit v0.12


From a7be8e2becb3e888056f2d01248d589af827bb27 Mon Sep 17 00:00:00 2001
From: Britney Fransen <brfransen@gmail.com>
Date: Mon, 19 Sep 2011 18:47:56 -0500
Subject: mdbtools: recompile against new libs

---
 abs/extra/mdbtools/PKGBUILD | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/abs/extra/mdbtools/PKGBUILD b/abs/extra/mdbtools/PKGBUILD
index c7a562d..870551c 100644
--- a/abs/extra/mdbtools/PKGBUILD
+++ b/abs/extra/mdbtools/PKGBUILD
@@ -2,7 +2,7 @@
 # Contributor: Eduard "bekks" Warkentin <eduard.warkentin@gmail.com>
 pkgname=mdbtools
 pkgver=0.5
-pkgrel=8
+pkgrel=9
 pkgdesc="Utilities for viewing data and exporting schema from Microsoft Access Database files"
 arch=('i686' 'x86_64')
 url="http://sourceforge.net/projects/mdbtools/"
-- 
cgit v0.12


From ae5fc8a102437e1671eb2d4a53a3c999cf1e1339 Mon Sep 17 00:00:00 2001
From: Britney Fransen <brfransen@gmail.com>
Date: Mon, 19 Sep 2011 18:58:21 -0500
Subject: LinHES-timezone: fix parsing to guess location. refs #778

---
 abs/core/LinHES-timezone/PKGBUILD          | 5 +++--
 abs/core/LinHES-timezone/linhes_timezone.c | 2 +-
 2 files changed, 4 insertions(+), 3 deletions(-)

diff --git a/abs/core/LinHES-timezone/PKGBUILD b/abs/core/LinHES-timezone/PKGBUILD
index e819965..05a48fc 100644
--- a/abs/core/LinHES-timezone/PKGBUILD
+++ b/abs/core/LinHES-timezone/PKGBUILD
@@ -2,7 +2,7 @@
 # Maintainer: Greg Frost <gregfrost1@bigpond.com>
 pkgname=LinHES-timezone
 pkgver=1
-pkgrel=9
+pkgrel=10
 pkgdesc="GUI timezone selector used by LinHES-config."
 arch=i686
 depends=()
@@ -26,4 +26,5 @@ md5sums=('53976e51e938c555f84b43c933339051'
          '0710658b3b46cc659f56260c03b904ed'
          '0d9e51af5f650dd329edce4531c42a58'
          'c01e2335603d8395004e32bae9060fde'
-         'b20bd68272644f607fbfe7d50e7be42a')
+         'b20bd68272644f607fbfe7d50e7be42a'
+         '96e8dd40e3b7c9f5ba2423dc4243758b')
diff --git a/abs/core/LinHES-timezone/linhes_timezone.c b/abs/core/LinHES-timezone/linhes_timezone.c
index d7a56d2..1cf04b2 100644
--- a/abs/core/LinHES-timezone/linhes_timezone.c
+++ b/abs/core/LinHES-timezone/linhes_timezone.c
@@ -641,7 +641,7 @@ void *timezone_guess (void *unused)
   {
     timezone_info_command = 
       "wget http://www.geobytes.com/IpLocator.htm -O - 2> /dev/null |"
-      "grep \"^ <td \" |"
+      "grep \"<td \" |"
       "grep -i -E -A1 \"Latitude|Longitude|TimeZone\" | grep -v \"^--$\"";
   }
 
-- 
cgit v0.12


From b105c311213d976f2470b21adcdafa5ed2886dcc Mon Sep 17 00:00:00 2001
From: Britney Fransen <brfransen@gmail.com>
Date: Tue, 20 Sep 2011 17:28:16 -0500
Subject: zoneminder: Bump to latest. ref #770

---
 abs/core/zoneminder/Controls_Orbit.sql |    3 +
 abs/core/zoneminder/Makefile.patch     |   20 +-
 abs/core/zoneminder/PKGBUILD           |  107 ++-
 abs/core/zoneminder/customdb           |    6 +-
 abs/core/zoneminder/httpd-zm.conf      |   18 +
 abs/core/zoneminder/mootools.v1.11.js  |    3 -
 abs/core/zoneminder/zm.conf.patch      |   20 -
 abs/core/zoneminder/zm.rc.d            |    4 +-
 abs/core/zoneminder/zmeventbackup      |   48 ++
 abs/core/zoneminder/zmeventdump        |   48 --
 abs/core/zoneminder/zmfilter.pl        | 1119 ++++++++++++++++++++++++++++++++
 abs/core/zoneminder/zminit.arch        |    0
 abs/core/zoneminder/zmupdate.patch     |   23 -
 abs/core/zoneminder/zoneminder.install |   82 +--
 14 files changed, 1283 insertions(+), 218 deletions(-)
 create mode 100755 abs/core/zoneminder/Controls_Orbit.sql
 mode change 100644 => 100755 abs/core/zoneminder/Makefile.patch
 mode change 100644 => 100755 abs/core/zoneminder/PKGBUILD
 create mode 100755 abs/core/zoneminder/httpd-zm.conf
 delete mode 100644 abs/core/zoneminder/mootools.v1.11.js
 delete mode 100644 abs/core/zoneminder/zm.conf.patch
 mode change 100644 => 100755 abs/core/zoneminder/zm.rc.d
 create mode 100755 abs/core/zoneminder/zmeventbackup
 delete mode 100755 abs/core/zoneminder/zmeventdump
 create mode 100755 abs/core/zoneminder/zmfilter.pl
 mode change 100644 => 100755 abs/core/zoneminder/zminit.arch
 delete mode 100644 abs/core/zoneminder/zmupdate.patch
 mode change 100644 => 100755 abs/core/zoneminder/zoneminder.install

diff --git a/abs/core/zoneminder/Controls_Orbit.sql b/abs/core/zoneminder/Controls_Orbit.sql
new file mode 100755
index 0000000..23224e4
--- /dev/null
+++ b/abs/core/zoneminder/Controls_Orbit.sql
@@ -0,0 +1,3 @@
+
+INSERT INTO `Controls` VALUES (7,'Orbit','Remote','mjpgStreamer',0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,1,-7000,7000,200,200,1,100,100,0,0,1,-2000,2000,10,100,1,200,200,0,0,0,0);
+
diff --git a/abs/core/zoneminder/Makefile.patch b/abs/core/zoneminder/Makefile.patch
old mode 100644
new mode 100755
index d033e72..efafc48
--- a/abs/core/zoneminder/Makefile.patch
+++ b/abs/core/zoneminder/Makefile.patch
@@ -1,13 +1,11 @@
---- ZoneMinder-1.23.3.orig/Makefile	2008-03-13 17:41:47.000000000 -0700
-+++ ZoneMinder-1.23.3/Makefile	2008-03-15 06:21:22.000000000 -0700
-@@ -687,8 +687,8 @@
+--- ZoneMinder-1.24.0.orig/Makefile	2008-03-13 17:41:47.000000000 -0700
++++ ZoneMinder-1.24.0/Makefile	2008-03-15 06:21:22.000000000 -0700
+@@ -815,7 +815,7 @@
  # Yes, you are correct. This is a HACK!
  install-data-hook:
- 	( cd $(DESTDIR)$(sysconfdir); chown $(webuser):$(webgroup) $(sysconf_DATA); chmod 600 $(sysconf_DATA) )
--	-( if ! test -e $(RUNDIR); then mkdir $(RUNDIR); fi )
--	( if ! test -e $(ZM_RUNDIR); then mkdir $(ZM_RUNDIR); fi; chown $(webuser):$(webgroup) $(ZM_RUNDIR); chmod u+w $(ZM_RUNDIR) )
-+	-( if ! test -e$(DESTDIR)$(RUNDIR); then mkdir -p $(DESTDIR)$(RUNDIR); fi )
-+	( if ! test -e $(DESTDIR)$(ZM_RUNDIR); then mkdir -p $(DESTDIR)$(ZM_RUNDIR); fi; chown $(webuser):$(webgroup) $(DESTDIR)$(ZM_RUNDIR); chmod u+w $(DESTDIR)$(ZM_RUNDIR) )
- 
- uninstall-hook:
- 	@-( cd $(DESTDIR)$(webdir); rm -rf events graphics images sounds temp )
+  ( cd $(DESTDIR)$(sysconfdir); chown $(webuser):$(webgroup) $(sysconf_DATA); chmod 600 $(sysconf_DATA) )
+- ( if ! test -e $(ZM_RUNDIR); then mkdir -p $(ZM_RUNDIR); fi; if test "$(ZM_RUNDIR)" != "/var/run"; then chown $(webuser):$(webgroup) $(ZM_RUNDIR); chmod u+w $(ZM_RUNDIR); fi )
++ ( if ! test -e $(DESTDIR)$(ZM_RUNDIR); then mkdir -p $(DESTDIR)$(ZM_RUNDIR); fi; if test "$(DESTDIR)$(ZM_RUNDIR)" != "/var/run"; then chown $(webuser):$(webgroup) $(DESTDIR)$(ZM_RUNDIR); chmod u+w $(DESTDIR)$(ZM_RUNDIR); fi )
+  ( if ! test -e $(ZM_TMPDIR); then mkdir -m 700 -p $(ZM_TMPDIR); fi; if test "$(ZM_TMPDIR)" != "/tmp"; then chown $(webuser):$(webgroup) $(ZM_TMPDIR); chmod u+w $(ZM_TMPDIR); fi )
+  ( if ! test -e $(ZM_LOGDIR); then mkdir -p $(ZM_LOGDIR); fi; if test "$(ZM_LOGDIR)" != "/var/log"; then chown $(webuser):$(webgroup) $(ZM_LOGDIR); chmod u+w $(ZM_LOGDIR); fi )
+
diff --git a/abs/core/zoneminder/PKGBUILD b/abs/core/zoneminder/PKGBUILD
old mode 100644
new mode 100755
index 94a543a..f9d6f8f
--- a/abs/core/zoneminder/PKGBUILD
+++ b/abs/core/zoneminder/PKGBUILD
@@ -2,81 +2,70 @@
 # Contributor: Ross melin <rdmelin@gmail.com>
 
 pkgname=zoneminder
-pkgver=1.23.3
-pkgrel=10
+pkgver=1.25.0
+pkgrel=1
 pkgdesc="Capture, analyse, record and monitor video security cameras."
-arch=('i686')
+arch=('i686' 'x86_64')
 url="http://www.zoneminder.com"
 license=('GPL')
-groups=()
-depends=('lighttpd' 'php' 'mysql' 'pcre' 'gnutls' 'ffmpeg' 'perl-php-serialization' 'perl-libwww' 'perl-date-manip' 'perl-unicode-map' 'perl-dbi' 'perl-dbd-mysql' 'perl-io-stringy' 'perl-mime-lite' 'perl-timedate' 'perl-x10' 'perl-time-modules')
+depends=('cambozola' 'apache' 'php' 'mysql' 'pcre' 'openssl' 'ffmpeg' 'perl-php-serialization' 'perl-libwww' 'perl-date-manip' 'perl-unicode-map' 'perl-dbi' 'perl-dbd-mysql' 'perl-io-stringy' 'perl-mime-lite' 'perl-timedate' 'perl-x10' 'perl-time-modules' 'perl-net-smtp-ssl' 'perl-sys-mmap' 'sudo' 'libv4l')
 makedepends=()
-provides=(zoneminder)
-conflicts=()
-replaces=()
-backup=(etc/zm.conf)
-options=()
 install=zoneminder.install
-source=(http://www2.zoneminder.com/downloads/ZoneMinder-$pkgver.tar.gz \
-	zm.rc.d \
- 	zm.conf.patch \
-  zmupdate.patch \
-  Makefile.patch \
- 	zminit.arch \
-	customdb \
-  mootools.v1.11.js \
-  http://www.charliemouse.com:8080/code/cambozola/cambozola-0.50.tar.gz \
-  zmeventdump \
-  run)
-noextract=()
-md5sums=('ee803f0f71d6e67adf602c3557fb6bc9'
-         'af8631abe20cd7dcab1a023af7d4f3e8'
-         '1a6c94411f8adb53a10dc7c19c3bbf02'
-         '320dd41725945218de0672f899e1d739'
-         '818cec2eba7e1efb3f5c410f6dd8d528'
+source=("http://www2.zoneminder.com/downloads/ZoneMinder-${pkgver}.tar.gz"
+zm.rc.d 
+Controls_Orbit.sql 
+zminit.arch 
+customdb 
+httpd-zm.conf 
+zmfilter.pl 
+zmeventbackup
+Makefile.patch)
+md5sums=('eaefa14befd482154970541252aa1a39'
+         'b20fb25b187eb6abb21321e153a7fb25'
+         '5033bc098bf497c8aed1fc1b3c9c5f9c'
          'f9720872736f26d17bc49d8725b75ae4'
-         'f0c4b80b3c2f1e0fe90d7b52191b7e51'
-         '0df5bf23f9b09f0cae2e7f0a9e0ef16e'
-         'daded58688e16ab513920a54a0599267'
-         '3046d91dde4a753867c62aba985c647e')
+         '4ace13d1e20934abe192ef7372c75988'
+         '00201eba9c0a5d1ed14b10cc55410698'
+         '80c52cc3575073a7462ff6a54886a345'
+         '8b40137b6ff54f2fb26104b70edd22e9'
+         'bb308c2393e947a224d56862c85a3ad9')
 
-build() {
-	cd "$srcdir/ZoneMinder-$pkgver"
-
-	patch -p1 < $startdir/src/zm.conf.patch
-  patch -p1 < $startdir/src/zmupdate.patch
 
-  sed -i 's|<ffmpeg/avformat.h>|<libavformat/avformat.h>|' $srcdir/ZoneMinder-$pkgver/src/zm_mpeg.h
-  sed -i 's|<ffmpeg/swscale.h>|<libswscale/swscale.h>|' $srcdir/ZoneMinder-$pkgver/src/zm_mpeg.h
-  sed -i 's|--- Created by|-- Created by|'  $srcdir/ZoneMinder-$pkgver/scripts/zmdbbackup.in
-
-	./configure --prefix=/usr \
-		--sysconfdir=/etc \
-		--with-webuser=http  \
-		--with-webgroup=http \
-		--with-mysql=/usr  \
-		--with-webdir=/data/srv/httpd/htdocs/zm  \
-		--with-cgidir=/data/srv/httpd/htdocs/cgi-bin \
-		--bindir=/usr/lib/zm/bin
+build() {
+  cd "$srcdir/ZoneMinder-$pkgver"
 
-  patch -p1 < $startdir/src/Makefile.patch
-	make || return 1
-	make DESTDIR="$pkgdir" install || return 1
+  cat ../Controls_Orbit.sql >> db/zm_create.sql.in
+  ./configure --prefix=/usr \
+    --sysconfdir=/etc \
+    --with-webuser=http  \
+    --with-webgroup=http \
+    --with-mysql=/usr  \
+    --with-webdir=/srv/zoneminder/www  \
+    --with-cgidir=/srv/zoneminder/cgi-bin \
+    --bindir=/srv/zoneminder/bin \
+    ZM_SSL_LIB=openssl \
+    CPPFLAGS=-D__STDC_CONSTANT_MACROS
+  # goddamn chown line just mucks everything up, we'll chown it in the install
+  # script.
+  sed -i '/chown/d' Makefile
+  make || return 1
+  make DESTDIR="$pkgdir" install || return 1
 
-	install -D -m 700 $startdir/src/zminit.arch  $startdir/pkg/usr/lib/zm/bin/zminit
-	install -D -m 700 $startdir/src/zm.rc.d  $startdir/pkg/etc/rc.d/zm
+  install -D -m 700 $startdir/src/zminit.arch  $startdir/pkg/usr/lib/zm/bin/zminit
+  install -D -m 700 $startdir/src/zm.rc.d  $startdir/pkg/etc/rc.d/zm
   install -D -m 700 scripts/zmdbbackup  $startdir/pkg/usr/lib/zm/bin/zmdbbackup
   install -D -m 700 scripts/zmdbbackup  $startdir/pkg/usr/lib/zm/bin/zmdbbackup
   install -D -m 700 scripts/zmdbrestore  $startdir/pkg/usr/lib/zm/bin/zmdbrestore
+  install -D -m 700 scripts/zmeventdump  $startdir/pkg/usr/lib/zm/bin/zmeventdump
   install -D -m 700 scripts/zmlogrotate.conf  $startdir/pkg/etc/logrotate.d/zm
-  install -D -m 700 $startdir/src/zmeventdump  $startdir/pkg/etc/cron.hourly/zmeventdump
+  install -D -m 700 $startdir/src/zmeventbackup  $startdir/pkg/etc/cron.hourly/zmeventbackup
+  install -D -m 755 $startdir/src/zmfilter.pl $startdir/pkg/usr/lib/zm/bin/zmfilter.pl
 
-  tar -zxf $startdir/src/cambozola-0.50.tar.gz 
-  install -m 644  cambozola-0.50/dist/cambozola.jar $startdir/pkg/data/srv/httpd/htdocs/zm/cambozola.jar
+  mkdir -p  $startdir/pkg/etc/httpd/conf/extra/
+  install -m 644 $startdir/src/httpd-zm.conf $startdir/pkg/etc/httpd/conf/extra/httpd-zm.conf
 
-  install $startdir/src/mootools.v1.11.js  $startdir/pkg/data/srv/httpd/htdocs/zm/mootools.js
   install -D -m 700 $startdir/src/customdb $startdir/pkg/usr/lib/zm/upgrade/customdb
-	install -D  db/zm*.sql $startdir/pkg/usr/lib/zm/upgrade/
+  install -D  db/zm*.sql $startdir/pkg/usr/lib/zm/upgrade/
 
   mkdir -p $startdir/pkg/var/run/zm
 
@@ -85,8 +74,6 @@ build() {
     -o -name ".packlist"                \
     -o -name "*.bs"                     \
     |xargs -i rm -f {}
-    mkdir -p $pkgdir/etc/sv/zm
-    install -D -m 755 $srcdir/run $pkgdir/etc/sv/zm
 
 }
 
diff --git a/abs/core/zoneminder/customdb b/abs/core/zoneminder/customdb
index 93ce7fe..82dfc48 100755
--- a/abs/core/zoneminder/customdb
+++ b/abs/core/zoneminder/customdb
@@ -4,8 +4,8 @@ DBNAME=$2
 USERNAME=$3
 PASSWORD=$4
 
-ZM_PATH_ZMS=/cgi-bin/nph-zms
-ZM_PATH_SOCKS=/var/lib/zm
+ZM_PATH_ZMS=/cgi-zm/nph-zms
+ZM_PATH_SOCKS=/var/lib/zm/socks
 ZM_PATH_LOGS=/var/log/zm
 ZM_WEB_LIST_THUMBS=1
 ZM_WEB_MONTAGE_WIDTH=320
@@ -14,7 +14,7 @@ ZM_OPT_CAMBOZOLA=1
 ZM_OPT_MPEG=ffmpeg
 ZM_PATH_FFMPEG=/usr/bin/ffmpeg
 ZM_OPT_NETPBM=1
-ZM_EXTRA_DEBUG_LOG=/var/log/zm/zm_debug.log+
+ZM_EXTRA_DEBUG_LOG=/var/log/zm/zm_debug.log
 ZM_OPT_USE_AUTH=0
 
 sql=/tmp/$$
diff --git a/abs/core/zoneminder/httpd-zm.conf b/abs/core/zoneminder/httpd-zm.conf
new file mode 100755
index 0000000..bdd29d7
--- /dev/null
+++ b/abs/core/zoneminder/httpd-zm.conf
@@ -0,0 +1,18 @@
+# /etc/httpd/conf/extra/httpd-zm.conf
+# Config for zoneminder web app
+
+Alias /zm "/var/lib/zm/www"
+<Directory "/var/lib/zm/www">
+    Options -Indexes MultiViews FollowSymLinks
+    AllowOverride All
+    Order allow,deny
+    Allow from all
+</Directory>
+
+ScriptAlias /cgi-zm "/var/lib/zm/cgi-bin"
+<Directory "/var/lib/zm/cgi-bin">
+    AllowOverride All
+    Options ExecCGI
+    Order allow,deny
+    Allow from all
+</Directory>
diff --git a/abs/core/zoneminder/mootools.v1.11.js b/abs/core/zoneminder/mootools.v1.11.js
deleted file mode 100644
index 154284c..0000000
--- a/abs/core/zoneminder/mootools.v1.11.js
+++ /dev/null
@@ -1,3 +0,0 @@
-//MooTools, My Object Oriented Javascript Tools. Copyright (c) 2006-2007 Valerio Proietti, <http://mad4milk.net>, MIT Style License.
-
-eval(function(p,a,c,k,e,d){e=function(c){return(c<a?'':e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--){d[e(c)]=k[c]||e(c)}k=[function(e){return d[e]}];e=function(){return'\\w+'};c=1};while(c--){if(k[c]){p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c])}}return p}('o ci={cj:\'1.11\'};k $77(N){m(N!=9N)};k $F(N){B(!$77(N))m O;B(N.5i)m\'G\';o F=7c N;B(F==\'2I\'&&N.ch){22(N.84){Y 1:m\'G\';Y 3:m(/\\S/).2v(N.ax)?\'cg\':\'cd\'}}B(F==\'2I\'||F==\'k\'){22(N.9C){Y 2t:m\'1z\';Y 7y:m\'5C\';Y 18:m\'4R\'}B(7c N.V==\'4M\'){B(N.3r)m\'ce\';B(N.8t)m\'1b\'}}m F};k $2a(){o 54={};M(o i=0;i<1b.V;i++){M(o K 1a 1b[i]){o ap=1b[i][K];o 6d=54[K];B(6d&&$F(ap)==\'2I\'&&$F(6d)==\'2I\')54[K]=$2a(6d,ap);14 54[K]=ap}}m 54};o $R=k(){o 1p=1b;B(!1p[1])1p=[c,1p[0]];M(o K 1a 1p[1])1p[0][K]=1p[1][K];m 1p[0]};o $5e=k(){M(o i=0,l=1b.V;i<l;i++){1b[i].R=k(1U){M(o 1V 1a 1U){B(!c.1L[1V])c.1L[1V]=1U[1V];B(!c[1V])c[1V]=$5e.6x(1V)}}}};$5e.6x=k(1V){m k(W){m c.1L[1V].4j(W,2t.1L.bh.1X(1b,1))}};$5e(7Z,2t,6i,aN);k $2A(N){m!!(N||N===0)};k $4T(N,aY){m $77(N)?N:aY};k $8c(3s,1D){m 1c.9q(1c.8c()*(1D-3s+1)+3s)};k $3A(){m L 96().9w()};k $55(1H){cf(1H);ck(1H);m 1n};o 3M=k(N){N=N||{};N.R=$R;m N};o cl=L 3M(U);o cr=L 3M(Q);Q.6e=Q.33(\'6e\')[0];U.4a=!!(Q.5r);B(U.9o)U.2P=U[U.6C?\'cs\':\'ag\']=1e;14 B(Q.aC&&!Q.cq&&!cp.cm)U.4x=U[U.4a?\'cn\':\'5x\']=1e;14 B(Q.co!=1n)U.8r=1e;U.cc=U.4x;8X.R=$R;B(7c 5B==\'9N\'){o 5B=k(){};B(U.4x)Q.aJ("cb");5B.1L=(U.4x)?U["[[bZ.1L]]"]:{}}5B.1L.5i=k(){};B(U.ag)5j{Q.c0("c1",O,1e)}5c(e){};o 18=k(1J){o 5Z=k(){m(1b[0]!==1n&&c.1i&&$F(c.1i)==\'k\')?c.1i.4j(c,1b):c};$R(5Z,c);5Z.1L=1J;5Z.9C=18;m 5Z};18.1l=k(){};18.1L={R:k(1J){o 7m=L c(1n);M(o K 1a 1J){o 9m=7m[K];7m[K]=18.9l(9m,1J[K])}m L 18(7m)},3i:k(){M(o i=0,l=1b.V;i<l;i++)$R(c.1L,1b[i])}};18.9l=k(2l,2i){B(2l&&2l!=2i){o F=$F(2i);B(F!=$F(2l))m 2i;22(F){Y\'k\':o 8i=k(){c.1r=1b.8t.1r;m 2i.4j(c,1b)};8i.1r=2l;m 8i;Y\'2I\':m $2a(2l,2i)}}m 2i};o 7u=L 18({bY:k(fn){c.4v=c.4v||[];c.4v.1k(fn);m c},7z:k(){B(c.4v&&c.4v.V)c.4v.aK().2g(10,c)},bX:k(){c.4v=[]}});o 2p=L 18({1B:k(F,fn){B(fn!=18.1l){c.$19=c.$19||{};c.$19[F]=c.$19[F]||[];c.$19[F].5S(fn)}m c},1h:k(F,1p,2g){B(c.$19&&c.$19[F]){c.$19[F].1q(k(fn){fn.3a({\'W\':c,\'2g\':2g,\'1b\':1p})()},c)}m c},4C:k(F,fn){B(c.$19&&c.$19[F])c.$19[F].2K(fn);m c}});o 43=L 18({2Y:k(){c.C=$2a.4j(1n,[c.C].R(1b));B(c.1B){M(o 3z 1a c.C){B($F(c.C[3z]==\'k\')&&(/^67[A-Z]/).2v(3z))c.1B(3z,c.C[3z])}}m c}});2t.R({7b:k(fn,W){M(o i=0,j=c.V;i<j;i++)fn.1X(W,c[i],i,c)},36:k(fn,W){o 4Y=[];M(o i=0,j=c.V;i<j;i++){B(fn.1X(W,c[i],i,c))4Y.1k(c[i])}m 4Y},2D:k(fn,W){o 4Y=[];M(o i=0,j=c.V;i<j;i++)4Y[i]=fn.1X(W,c[i],i,c);m 4Y},4F:k(fn,W){M(o i=0,j=c.V;i<j;i++){B(!fn.1X(W,c[i],i,c))m O}m 1e},bU:k(fn,W){M(o i=0,j=c.V;i<j;i++){B(fn.1X(W,c[i],i,c))m 1e}m O},3k:k(3r,15){o 3S=c.V;M(o i=(15<0)?1c.1D(0,3S+15):15||0;i<3S;i++){B(c[i]===3r)m i}m-1},8e:k(1g,V){1g=1g||0;B(1g<0)1g=c.V+1g;V=V||(c.V-1g);o 8g=[];M(o i=0;i<V;i++)8g[i]=c[1g++];m 8g},2K:k(3r){o i=0;o 3S=c.V;6Z(i<3S){B(c[i]===3r){c.74(i,1);3S--}14{i++}}m c},1j:k(3r,15){m c.3k(3r,15)!=-1},bV:k(1O){o N={},V=1c.3s(c.V,1O.V);M(o i=0;i<V;i++)N[1O[i]]=c[i];m N},R:k(1z){M(o i=0,j=1z.V;i<j;i++)c.1k(1z[i]);m c},2a:k(1z){M(o i=0,l=1z.V;i<l;i++)c.5S(1z[i]);m c},5S:k(3r){B(!c.1j(3r))c.1k(3r);m c},bW:k(){m c[$8c(0,c.V-1)]||1n},80:k(){m c[c.V-1]||1n}});2t.1L.1q=2t.1L.7b;2t.1q=2t.7b;k $A(1z){m 2t.8e(1z)};k $1q(41,fn,W){B(41&&7c 41.V==\'4M\'&&$F(41)!=\'2I\'){2t.7b(41,fn,W)}14{M(o 1w 1a 41)fn.1X(W||41,41[1w],1w)}};2t.1L.2v=2t.1L.1j;6i.R({2v:k(79,2U){m(($F(79)==\'2z\')?L 7y(79,2U):79).2v(c)},3d:k(){m 5O(c,10)},aH:k(){m 66(c)},8a:k(){m c.3g(/-\\D/g,k(31){m 31.8d(1).7A()})},aL:k(){m c.3g(/\\w[A-Z]/g,k(31){m(31.8d(0)+\'-\'+31.8d(1).5L())})},8R:k(){m c.3g(/\\b[a-z]/g,k(31){m 31.7A()})},5T:k(){m c.3g(/^\\s+|\\s+$/g,\'\')},7r:k(){m c.3g(/\\s{2,}/g,\' \').5T()},5E:k(1z){o 1s=c.31(/\\d{1,3}/g);m(1s)?1s.5E(1z):O},5G:k(1z){o 3C=c.31(/^#?(\\w{1,2})(\\w{1,2})(\\w{1,2})$/);m(3C)?3C.bh(1).5G(1z):O},1j:k(2z,s){m(s)?(s+c+s).3k(s+2z+s)>-1:c.3k(2z)>-1},b5:k(){m c.3g(/([.*+?^${}()|[\\]\\/\\\\])/g,\'\\\\$1\')}});2t.R({5E:k(1z){B(c.V<3)m O;B(c.V==4&&c[3]==0&&!1z)m\'c2\';o 3C=[];M(o i=0;i<3;i++){o 5d=(c[i]-0).4l(16);3C.1k((5d.V==1)?\'0\'+5d:5d)}m 1z?3C:\'#\'+3C.2c(\'\')},5G:k(1z){B(c.V!=3)m O;o 1s=[];M(o i=0;i<3;i++){1s.1k(5O((c[i].V==1)?c[i]+c[i]:c[i],16))}m 1z?1s:\'1s(\'+1s.2c(\',\')+\')\'}});7Z.R({3a:k(C){o fn=c;C=$2a({\'W\':fn,\'I\':O,\'1b\':1n,\'2g\':O,\'4f\':O,\'6f\':O},C);B($2A(C.1b)&&$F(C.1b)!=\'1z\')C.1b=[C.1b];m k(I){o 1p;B(C.I){I=I||U.I;1p=[(C.I===1e)?I:L C.I(I)];B(C.1b)1p.R(C.1b)}14 1p=C.1b||1b;o 3N=k(){m fn.4j($4T(C.W,fn),1p)};B(C.2g)m 9M(3N,C.2g);B(C.4f)m c3(3N,C.4f);B(C.6f)5j{m 3N()}5c(c9){m O};m 3N()}},bT:k(1p,W){m c.3a({\'1b\':1p,\'W\':W})},6f:k(1p,W){m c.3a({\'1b\':1p,\'W\':W,\'6f\':1e})()},W:k(W,1p){m c.3a({\'W\':W,\'1b\':1p})},c8:k(W,1p){m c.3a({\'W\':W,\'I\':1e,\'1b\':1p})},2g:k(2g,W,1p){m c.3a({\'2g\':2g,\'W\':W,\'1b\':1p})()},4f:k(aV,W,1p){m c.3a({\'4f\':aV,\'W\':W,\'1b\':1p})()}});aN.R({3d:k(){m 5O(c)},aH:k(){m 66(c)},1F:k(3s,1D){m 1c.3s(1D,1c.1D(3s,c))},2q:k(5Y){5Y=1c.3w(10,5Y||0);m 1c.2q(c*5Y)/5Y},c7:k(fn){M(o i=0;i<c;i++)fn(i)}});o P=L 18({1i:k(el,1U){B($F(el)==\'2z\'){B(U.2P&&1U&&(1U.1w||1U.F)){o 1w=(1U.1w)?\' 1w="\'+1U.1w+\'"\':\'\';o F=(1U.F)?\' F="\'+1U.F+\'"\':\'\';57 1U.1w;57 1U.F;el=\'<\'+el+1w+F+\'>\'}el=Q.aJ(el)}el=$(el);m(!1U||!el)?el:el.2j(1U)}});o 26=L 18({1i:k(T){m(T)?$R(T,c):c}});26.R=k(1U){M(o 1V 1a 1U){c.1L[1V]=1U[1V];c[1V]=$5e.6x(1V)}};k $(el){B(!el)m 1n;B(el.5i)m 2F.52(el);B([U,Q].1j(el))m el;o F=$F(el);B(F==\'2z\'){el=Q.6W(el);F=(el)?\'G\':O}B(F!=\'G\')m 1n;B(el.5i)m 2F.52(el);B([\'2I\',\'c4\'].1j(el.6S.5L()))m el;$R(el,P.1L);el.5i=k(){};m 2F.52(el)};Q.6Y=Q.33;k $$(){o T=[];M(o i=0,j=1b.V;i<j;i++){o 1S=1b[i];22($F(1S)){Y\'G\':T.1k(1S);Y\'c5\':1C;Y O:1C;Y\'2z\':1S=Q.6Y(1S,1e);62:T.R(1S)}}m $$.5M(T)};$$.5M=k(1z){o T=[];M(o i=0,l=1z.V;i<l;i++){B(1z[i].$6r)6l;o G=$(1z[i]);B(G&&!G.$6r){G.$6r=1e;T.1k(G)}}M(o n=0,d=T.V;n<d;n++)T[n].$6r=1n;m L 26(T)};26.73=k(K){m k(){o 1p=1b;o 1x=[];o T=1e;M(o i=0,j=c.V,3N;i<j;i++){3N=c[i][K].4j(c[i],1p);B($F(3N)!=\'G\')T=O;1x.1k(3N)};m(T)?$$.5M(1x):1x}};P.R=k(1J){M(o K 1a 1J){5B.1L[K]=1J[K];P.1L[K]=1J[K];P[K]=$5e.6x(K);o aB=(2t.1L[K])?K+\'26\':K;26.1L[aB]=26.73(K)}};P.R({2j:k(1U){M(o 1V 1a 1U){o 4m=1U[1V];22(1V){Y\'8J\':c.4A(4m);1C;Y\'19\':B(c.6j)c.6j(4m);1C;Y\'1J\':c.6o(4m);1C;62:c.7l(1V,4m)}}m c},28:k(el,ay){el=$(el);22(ay){Y\'9k\':el.3n.91(c,el);1C;Y\'94\':o 3x=el.8I();B(!3x)el.3n.86(c);14 el.3n.91(c,3x);1C;Y\'1o\':o 8Z=el.88;B(8Z){el.91(c,8Z);1C}62:el.86(c)}m c},7Y:k(el){m c.28(el,\'9k\')},6v:k(el){m c.28(el,\'94\')},c6:k(el){m c.28(el,\'3P\')},ct:k(el){m c.28(el,\'1o\')},b2:k(){o T=[];$1q(1b,k(4t){T=T.7P(4t)});$$(T).28(c);m c},2K:k(){m c.3n.bl(c)},9G:k(9V){o el=$(c.cu(9V!==O));B(!el.$19)m el;el.$19={};M(o F 1a c.$19)el.$19[F]={\'1O\':$A(c.$19[F].1O),\'1I\':$A(c.$19[F].1I)};m el.78()},cT:k(el){el=$(el);c.3n.cU(el,c);m el},bn:k(1K){c.86(Q.cS(1K));m c},7s:k(1A){m c.1A.1j(1A,\' \')},9z:k(1A){B(!c.7s(1A))c.1A=(c.1A+\' \'+1A).7r();m c},9E:k(1A){c.1A=c.1A.3g(L 7y(\'(^|\\\\s)\'+1A+\'(?:\\\\s|$)\'),\'$1\').7r();m c},cR:k(1A){m c.7s(1A)?c.9E(1A):c.9z(1A)},1P:k(K,J){22(K){Y\'21\':m c.bk(66(J));Y\'cO\':K=(U.2P)?\'cP\':\'cQ\'}K=K.8a();22($F(J)){Y\'4M\':B(![\'cV\',\'ak\'].1j(K))J+=\'4W\';1C;Y\'1z\':J=\'1s(\'+J.2c(\',\')+\')\'}c.1N[K]=J;m c},4A:k(1Z){22($F(1Z)){Y\'2I\':P.72(c,\'1P\',1Z);1C;Y\'2z\':c.1N.87=1Z}m c},bk:k(21){B(21==0){B(c.1N.4z!="4O")c.1N.4z="4O"}14{B(c.1N.4z!="8G")c.1N.4z="8G"}B(!c.6p||!c.6p.cW)c.1N.ak=1;B(U.2P)c.1N.36=(21==1)?\'\':"7d(21="+21*35+")";c.1N.21=c.$1W.21=21;m c},2h:k(K){K=K.8a();o 1M=c.1N[K];B(!$2A(1M)){B(K==\'21\')m c.$1W.21;1M=[];M(o 1N 1a P.4c){B(K==1N){P.4c[1N].1q(k(s){o 1N=c.2h(s);1M.1k(5O(1N)?1N:\'bo\')},c);B(K==\'2R\'){o 4F=1M.4F(k(5d){m(5d==1M[0])});m(4F)?1M[0]:O}m 1M.2c(\' \')}}B(K.1j(\'2R\')){B(P.4c.2R.1j(K)){m[\'bf\',\'7T\',\'2Q\'].2D(k(p){m c.2h(K+p)},c).2c(\' \')}14 B(P.97.1j(K)){m[\'bi\',\'bs\',\'az\',\'a6\'].2D(k(p){m c.2h(\'2R\'+p+K.3g(\'2R\',\'\'))},c).2c(\' \')}}B(Q.aF)1M=Q.aF.d2(c,1n).d3(K.aL());14 B(c.6p)1M=c.6p[K]}B(U.2P)1M=P.b6(K,1M,c);B(1M&&K.2v(/2E/i)&&1M.1j(\'1s\')){m 1M.68(\'1s\').74(1,4).2D(k(2E){m 2E.5E()}).2c(\' \')}m 1M},bg:k(){m P.7H(c,\'2h\',1b)},61:k(6u,1g){6u+=\'d1\';o el=(1g)?c[1g]:c[6u];6Z(el&&$F(el)!=\'G\')el=el[6u];m $(el)},9W:k(){m c.61(\'2l\')},8I:k(){m c.61(\'3x\')},d0:k(){m c.61(\'3x\',\'88\')},80:k(){m c.61(\'2l\',\'cX\')},cY:k(){m $(c.3n)},8H:k(){m $$(c.aC)},8o:k(el){m!!$A(c.33(\'*\')).1j(el)},5R:k(K){o 25=P.6A[K];B(25)m c[25];o 7V=P.a3[K]||0;B(!U.2P||7V)m c.cZ(K,7V);o 81=c.cN[K];m(81)?81.ax:1n},cM:k(K){o 25=P.6A[K];B(25)c[25]=\'\';14 c.a7(K);m c},cA:k(){m P.7H(c,\'5R\',1b)},7l:k(K,J){o 25=P.6A[K];B(25)c[25]=J;14 c.cB(K,J);m c},6o:k(1Z){m P.72(c,\'7l\',1Z)},5s:k(){c.b3=$A(1b).2c(\'\');m c},cC:k(1K){o 3q=c.4D();B([\'1N\',\'2s\'].1j(3q)){B(U.2P){B(3q==\'1N\')c.b4.87=1K;14 B(3q==\'2s\')c.7l(\'1K\',1K);m c}14{c.bl(c.88);m c.bn(1K)}}c[$77(c.83)?\'83\':\'b1\']=1K;m c},cz:k(){o 3q=c.4D();B([\'1N\',\'2s\'].1j(3q)){B(U.2P){B(3q==\'1N\')m c.b4.87;14 B(3q==\'2s\')m c.5R(\'1K\')}14{m c.b3}}m($4T(c.83,c.b1))},4D:k(){m c.6S.5L()},1l:k(){2F.3V(c.33(\'*\'));m c.5s(\'\')}});P.b6=k(K,1M,G){B($2A(5O(1M)))m 1M;B([\'2N\',\'2y\'].1j(K)){o 1I=(K==\'2y\')?[\'1u\',\'4n\']:[\'1o\',\'3P\'];o 3l=0;1I.1q(k(J){3l+=G.2h(\'2R-\'+J+\'-2y\').3d()+G.2h(\'4w-\'+J).3d()});m G[\'1E\'+K.8R()]-3l+\'4W\'}14 B(K.2v(/2R(.+)bf|34|4w/)){m\'bo\'}m 1M};P.4c={\'2R\':[],\'4w\':[],\'34\':[]};[\'bi\',\'bs\',\'az\',\'a6\'].1q(k(9v){M(o 1N 1a P.4c)P.4c[1N].1k(1N+9v)});P.97=[\'cy\',\'cv\',\'cw\'];P.7H=k(el,23,1O){o 1M={};$1q(1O,k(1t){1M[1t]=el[23](1t)});m 1M};P.72=k(el,23,7G){M(o 1t 1a 7G)el[23](1t,7G[1t]);m el};P.6A=L 3M({\'4R\':\'1A\',\'M\':\'cx\',\'cD\':\'cE\',\'cK\':\'cL\',\'cJ\':\'cI\',\'cF\':\'cG\',\'cH\':\'d4\',\'bI\':\'bN\',\'bB\':\'bJ\',\'J\':\'J\',\'7D\':\'7D\',\'7E\':\'7E\',\'7J\':\'7J\',\'7Q\':\'7Q\'});P.a3={\'4N\':2,\'4s\':2};P.2H={6J:{2C:k(F,fn){B(c.8j)c.8j(F,fn,O);14 c.bD(\'67\'+F,fn);m c},3h:k(F,fn){B(c.a4)c.a4(F,fn,O);14 c.bP(\'67\'+F,fn);m c}}};U.R(P.2H.6J);Q.R(P.2H.6J);P.R(P.2H.6J);o 2F={T:[],52:k(el){B(!el.$1W){2F.T.1k(el);el.$1W={\'21\':1}}m el},3V:k(T){M(o i=0,j=T.V,el;i<j;i++){B(!(el=T[i])||!el.$1W)6l;B(el.$19)el.1h(\'3V\').78();M(o p 1a el.$1W)el.$1W[p]=1n;M(o d 1a P.1L)el[d]=1n;2F.T[2F.T.3k(el)]=1n;el.5i=el.$1W=el=1n}2F.T.2K(1n)},1l:k(){2F.52(U);2F.52(Q);2F.3V(2F.T)}};U.2C(\'9t\',k(){U.2C(\'7v\',2F.1l);B(U.2P)U.2C(\'7v\',bH)});o 2X=L 18({1i:k(I){B(I&&I.$bq)m I;c.$bq=1e;I=I||U.I;c.I=I;c.F=I.F;c.3v=I.3v||I.bF;B(c.3v.84==3)c.3v=c.3v.3n;c.aK=I.bx;c.bG=I.bC;c.bK=I.bz;c.bO=I.by;B([\'8b\',\'5a\'].1j(c.F)){c.bS=(I.9p)?I.9p/bQ:-(I.bE||0)/3}14 B(c.F.1j(\'1t\')){c.6O=I.9K||I.bL;M(o 1w 1a 2X.1O){B(2X.1O[1w]==c.6O){c.1t=1w;1C}}B(c.F==\'9X\'){o 6Q=c.6O-bM;B(6Q>0&&6Q<13)c.1t=\'f\'+6Q}c.1t=c.1t||6i.bA(c.6O).5L()}14 B(c.F.2v(/(6h|3m|bw)/)){c.1Y={\'x\':I.8E||I.9f+Q.2Z.5V,\'y\':I.8w||I.at+Q.2Z.63};c.9B={\'x\':I.8E?I.8E-U.99:I.9f,\'y\':I.8w?I.8w-U.9i:I.at};c.bR=(I.9K==3)||(I.bv==2);22(c.F){Y\'90\':c.2o=I.2o||I.ca;1C;Y\'8Y\':c.2o=I.2o||I.8A}c.aU()}m c},1R:k(){m c.6U().6X()},6U:k(){B(c.I.6U)c.I.6U();14 c.I.db=1e;m c},6X:k(){B(c.I.6X)c.I.6X();14 c.I.eK=O;m c}});2X.6m={2o:k(){B(c.2o&&c.2o.84==3)c.2o=c.2o.3n},aD:k(){5j{2X.6m.2o.1X(c)}5c(e){c.2o=c.3v}}};2X.1L.aU=(U.8r)?2X.6m.aD:2X.6m.2o;2X.1O=L 3M({\'eL\':13,\'6P\':38,\'eJ\':40,\'1u\':37,\'4n\':39,\'eI\':27,\'eF\':32,\'eG\':8,\'eH\':9,\'57\':46});P.2H.2p={1B:k(F,fn){c.$19=c.$19||{};c.$19[F]=c.$19[F]||{\'1O\':[],\'1I\':[]};B(c.$19[F].1O.1j(fn))m c;c.$19[F].1O.1k(fn);o 76=F;o 2w=P.2p[F];B(2w){B(2w.7F)2w.7F.1X(c,fn);B(2w.2D)fn=2w.2D;B(2w.F)76=2w.F}B(!c.8j)fn=fn.3a({\'W\':c,\'I\':1e});c.$19[F].1I.1k(fn);m(P.8V.1j(76))?c.2C(76,fn):c},4C:k(F,fn){B(!c.$19||!c.$19[F])m c;o 1m=c.$19[F].1O.3k(fn);B(1m==-1)m c;o 1t=c.$19[F].1O.74(1m,1)[0];o J=c.$19[F].1I.74(1m,1)[0];o 2w=P.2p[F];B(2w){B(2w.2K)2w.2K.1X(c,fn);B(2w.F)F=2w.F}m(P.8V.1j(F))?c.3h(F,J):c},6j:k(1Z){m P.72(c,\'1B\',1Z)},78:k(F){B(!c.$19)m c;B(!F){M(o 6g 1a c.$19)c.78(6g);c.$19=1n}14 B(c.$19[F]){c.$19[F].1O.1q(k(fn){c.4C(F,fn)},c);c.$19[F]=1n}m c},1h:k(F,1p,2g){B(c.$19&&c.$19[F]){c.$19[F].1O.1q(k(fn){fn.3a({\'W\':c,\'2g\':2g,\'1b\':1p})()},c)}m c},au:k(15,F){B(!15.$19)m c;B(!F){M(o 6g 1a 15.$19)c.au(15,6g)}14 B(15.$19[F]){15.$19[F].1O.1q(k(fn){c.1B(F,fn)},c)}m c}};U.R(P.2H.2p);Q.R(P.2H.2p);P.R(P.2H.2p);P.2p=L 3M({\'8N\':{F:\'90\',2D:k(I){I=L 2X(I);B(I.2o!=c&&!c.8o(I.2o))c.1h(\'8N\',I)}},\'8P\':{F:\'8Y\',2D:k(I){I=L 2X(I);B(I.2o!=c&&!c.8o(I.2o))c.1h(\'8P\',I)}},\'5a\':{F:(U.8r)?\'8b\':\'5a\'}});P.8V=[\'6h\',\'eM\',\'5z\',\'5n\',\'5a\',\'8b\',\'90\',\'8Y\',\'2M\',\'9X\',\'eN\',\'eS\',\'4e\',\'7v\',\'9t\',\'eT\',\'5o\',\'eR\',\'eQ\',\'3F\',\'eO\',\'eP\',\'48\',\'aE\',\'8s\',\'eE\',\'2G\'];7Z.R({3e:k(W,1p){m c.3a({\'W\':W,\'1b\':1p,\'I\':2X})}});26.R({eV:k(3q){m L 26(c.36(k(el){m(P.4D(el)==3q)}))},a8:k(1A,2J){o T=c.36(k(el){m(el.1A&&el.1A.1j(1A,\' \'))});m(2J)?T:L 26(T)},a2:k(4u,2J){o T=c.36(k(el){m(el.4u==4u)});m(2J)?T:L 26(T)},a9:k(1w,82,J,2J){o T=c.36(k(el){o 2i=P.5R(el,1w);B(!2i)m O;B(!82)m 1e;22(82){Y\'=\':m(2i==J);Y\'*=\':m(2i.1j(J));Y\'^=\':m(2i.6K(0,J.V)==J);Y\'$=\':m(2i.6K(2i.V-J.V)==J);Y\'!=\':m(2i!=J);Y\'~=\':m 2i.1j(J,\' \')}m O});m(2J)?T:L 26(T)}});k $E(1S,36){m($(36)||Q).9P(1S)};k $et(1S,36){m($(36)||Q).6Y(1S)};$$.3B={\'5C\':/^(\\w*|\\*)(?:#([\\w-]+)|\\.([\\w-]+))?(?:\\[(\\w+)(?:([!*^$]?=)["\']?([^"\'\\]]*)["\']?)?])?$/,\'4a\':{7L:k(1x,3b,1d,i){o 2r=[3b.eu?\'7N:\':\'\',1d[1]];B(1d[2])2r.1k(\'[@4u="\',1d[2],\'"]\');B(1d[3])2r.1k(\'[1j(7P(" ", @4R, " "), " \',1d[3],\' ")]\');B(1d[4]){B(1d[5]&&1d[6]){22(1d[5]){Y\'*=\':2r.1k(\'[1j(@\',1d[4],\', "\',1d[6],\'")]\');1C;Y\'^=\':2r.1k(\'[es-er(@\',1d[4],\', "\',1d[6],\'")]\');1C;Y\'$=\':2r.1k(\'[eo(@\',1d[4],\', 2z-V(@\',1d[4],\') - \',1d[6].V,\' + 1) = "\',1d[6],\'"]\');1C;Y\'=\':2r.1k(\'[@\',1d[4],\'="\',1d[6],\'"]\');1C;Y\'!=\':2r.1k(\'[@\',1d[4],\'!="\',1d[6],\'"]\')}}14{2r.1k(\'[@\',1d[4],\']\')}}1x.1k(2r.2c(\'\'));m 1x},7O:k(1x,3b,2J){o T=[];o 4a=Q.5r(\'.//\'+1x.2c(\'//\'),3b,$$.3B.ac,ep.eq,1n);M(o i=0,j=4a.ev;i<j;i++)T.1k(4a.ew(i));m(2J)?T:L 26(T.2D($))}},\'9T\':{7L:k(1x,3b,1d,i){B(i==0){B(1d[2]){o el=3b.6W(1d[2]);B(!el||((1d[1]!=\'*\')&&(P.4D(el)!=1d[1])))m O;1x=[el]}14{1x=$A(3b.33(1d[1]))}}14{1x=$$.3B.33(1x,1d[1]);B(1d[2])1x=26.a2(1x,1d[2],1e)}B(1d[3])1x=26.a8(1x,1d[3],1e);B(1d[4])1x=26.a9(1x,1d[4],1d[5],1d[6],1e);m 1x},7O:k(1x,3b,2J){m(2J)?1x:$$.5M(1x)}},ac:k(9Z){m(9Z==\'7N\')?\'9Y://aS.eB.eC/eA/7N\':O},33:k(3b,6S){o 7M=[];M(o i=0,j=3b.V;i<j;i++)7M.R(3b[i].33(6S));m 7M}};$$.3B.23=(U.4a)?\'4a\':\'9T\';P.2H.7R={6N:k(1S,2J){o 1x=[];1S=1S.5T().68(\' \');M(o i=0,j=1S.V;i<j;i++){o 9U=1S[i];o 1d=9U.31($$.3B.5C);B(!1d)1C;1d[1]=1d[1]||\'*\';o 2r=$$.3B[$$.3B.23].7L(1x,c,1d,i);B(!2r)1C;1x=2r}m $$.3B[$$.3B.23].7O(1x,c,2J)},9P:k(1S){m $(c.6N(1S,1e)[0]||O)},6Y:k(1S,2J){o T=[];1S=1S.68(\',\');M(o i=0,j=1S.V;i<j;i++)T=T.7P(c.6N(1S[i],1e));m(2J)?T:$$.5M(T)}};P.R({6W:k(4u){o el=Q.6W(4u);B(!el)m O;M(o 1r=el.3n;1r!=c;1r=1r.3n){B(!1r)m O}m el},ez:k(1A){m c.6N(\'.\'+1A)}});Q.R(P.2H.7R);P.R(P.2H.7R);P.R({44:k(){22(c.4D()){Y\'48\':o 1I=[];$1q(c.C,k(3z){B(3z.7Q)1I.1k($4T(3z.J,3z.1K))});m(c.7J)?1I:1I[0];Y\'ab\':B(!(c.7E&&[\'ex\',\'ey\'].1j(c.F))&&![\'4O\',\'1K\',\'eU\'].1j(c.F))1C;Y\'ad\':m c.J}m O},ae:k(){m $$(c.33(\'ab\'),c.33(\'48\'),c.33(\'ad\'))},5A:k(){o 5f=[];c.ae().1q(k(el){o 1w=el.1w;o J=el.44();B(J===O||!1w||el.7D)m;o 7C=k(4m){5f.1k(1w+\'=\'+7e(4m))};B($F(J)==\'1z\')J.1q(7C);14 7C(J)});m 5f.2c(\'&\')}});P.R({3G:k(x,y){c.5V=x;c.63=y},7g:k(){m{\'2G\':{\'x\':c.5V,\'y\':c.63},\'3l\':{\'x\':c.4b,\'y\':c.3R},\'7h\':{\'x\':c.71,\'y\':c.5P}}},3p:k(2k){2k=2k||[];o el=c,1u=0,1o=0;do{1u+=el.fp||0;1o+=el.fh||0;el=el.fj}6Z(el);2k.1q(k(G){1u-=G.5V||0;1o-=G.63||0});m{\'x\':1u,\'y\':1o}},aQ:k(2k){m c.3p(2k).y},aP:k(2k){m c.3p(2k).x},4E:k(2k){o 1v=c.3p(2k);o N={\'2y\':c.4b,\'2N\':c.3R,\'1u\':1v.x,\'1o\':1v.y};N.4n=N.1u+N.2y;N.3P=N.1o+N.2N;m N}});P.2p.7S={7F:k(fn){B(U.6B){fn.1X(c);m}o 5X=k(){B(U.6B)m;U.6B=1e;U.1H=$55(U.1H);c.1h(\'7S\')}.W(c);B(Q.5m&&U.4x){U.1H=k(){B([\'6B\',\'8p\'].1j(Q.5m))5X()}.4f(50)}14 B(Q.5m&&U.2P){B(!$(\'7I\')){o 4s=(U.5k.ff==\'fi:\')?\'://0\':\'8q:fk(0)\';Q.fg(\'<2s 4u="7I" fd 4s="\'+4s+\'"><\\/2s>\');$(\'7I\').7i=k(){B(c.5m==\'8p\')5X()}}}14{U.2C("4e",5X);Q.2C("fe",5X)}}};U.fm=k(fn){m c.1B(\'7S\',fn)};U.R({8m:k(){B(c.5x)m c.fl;B(c.9a)m Q.4B.9c;m Q.2Z.9c},8n:k(){B(c.5x)m c.fo;B(c.9a)m Q.4B.9d;m Q.2Z.9d},93:k(){B(c.2P)m 1c.1D(Q.2Z.4b,Q.2Z.71);B(c.4x)m Q.4B.71;m Q.2Z.71},92:k(){B(c.2P)m 1c.1D(Q.2Z.3R,Q.2Z.5P);B(c.4x)m Q.4B.5P;m Q.2Z.5P},8u:k(){m c.99||Q.2Z.5V},8v:k(){m c.9i||Q.2Z.63},7g:k(){m{\'3l\':{\'x\':c.8m(),\'y\':c.8n()},\'7h\':{\'x\':c.93(),\'y\':c.92()},\'2G\':{\'x\':c.8u(),\'y\':c.8v()}}},3p:k(){m{\'x\':0,\'y\':0}}});o 1f={};1f.2T=L 18({C:{3X:18.1l,1Q:18.1l,7w:18.1l,2f:k(p){m-(1c.av(1c.7W*p)-1)/2},49:fb,2x:\'4W\',3T:1e,98:50},1i:k(C){c.G=c.G||1n;c.2Y(C);B(c.C.1i)c.C.1i.1X(c)},2n:k(){o 3A=$3A();B(3A<c.3A+c.C.49){c.4p=c.C.2f((3A-c.3A)/c.C.49);c.4q();c.4k()}14{c.1R(1e);c.2j(c.17);c.1h(\'1Q\',c.G,10);c.7z()}},2j:k(17){c.12=17;c.4k();m c},4q:k(){c.12=c.4o(c.15,c.17)},4o:k(15,17){m(17-15)*c.4p+15},1g:k(15,17){B(!c.C.3T)c.1R();14 B(c.1H)m c;c.15=15;c.17=17;c.3F=c.17-c.15;c.3A=$3A();c.1H=c.2n.4f(1c.2q(bd/c.C.98),c);c.1h(\'3X\',c.G);m c},1R:k(29){B(!c.1H)m c;c.1H=$55(c.1H);B(!29)c.1h(\'7w\',c.G);m c},2w:k(15,17){m c.1g(15,17)},f1:k(29){m c.1R(29)}});1f.2T.3i(L 7u,L 2p,L 43);1f.3t={48:k(K,17){B(K.2v(/2E/i))m c.2Q;o F=$F(17);B((F==\'1z\')||(F==\'2z\'&&17.1j(\' \')))m c.73;m c.9j},2V:k(el,K,5b){B(!5b.1k)5b=[5b];o 15=5b[0],17=5b[1];B(!$2A(17)){17=15;15=el.2h(K)}o 1y=c.48(K,17);m{\'15\':1y.2V(15),\'17\':1y.2V(17),\'1y\':1y}}};1f.3t.9j={2V:k(J){m 66(J)},56:k(15,17,2O){m 2O.4o(15,17)},44:k(J,2x,K){B(2x==\'4W\'&&K!=\'21\')J=1c.2q(J);m J+2x}};1f.3t.73={2V:k(J){m J.1k?J:J.68(\' \').2D(k(v){m 66(v)})},56:k(15,17,2O){o 12=[];M(o i=0;i<15.V;i++)12[i]=2O.4o(15[i],17[i]);m 12},44:k(J,2x,K){B(2x==\'4W\'&&K!=\'21\')J=J.2D(1c.2q);m J.2c(2x+\' \')+2x}};1f.3t.2Q={2V:k(J){m J.1k?J:J.5G(1e)},56:k(15,17,2O){o 12=[];M(o i=0;i<15.V;i++)12[i]=1c.2q(2O.4o(15[i],17[i]));m 12},44:k(J){m\'1s(\'+J.2c(\',\')+\')\'}};1f.7T=1f.2T.R({1i:k(el,K,C){c.G=$(el);c.K=K;c.1r(C)},3Z:k(){m c.2j(0)},4q:k(){c.12=c.1y.56(c.15,c.17,c)},2j:k(17){c.1y=1f.3t.48(c.K,17);m c.1r(c.1y.2V(17))},1g:k(15,17){B(c.1H&&c.C.3T)m c;o 2e=1f.3t.2V(c.G,c.K,[15,17]);c.1y=2e.1y;m c.1r(2e.15,2e.17)},4k:k(){c.G.1P(c.K,c.1y.44(c.12,c.C.2x,c.K))}});P.R({f2:k(K,C){m L 1f.7T(c,K,C)}});1f.4c=1f.2T.R({1i:k(el,C){c.G=$(el);c.1r(C)},4q:k(){M(o p 1a c.15)c.12[p]=c.1y[p].56(c.15[p],c.17[p],c)},2j:k(17){o 2e={};c.1y={};M(o p 1a 17){c.1y[p]=1f.3t.48(p,17[p]);2e[p]=c.1y[p].2V(17[p])}m c.1r(2e)},1g:k(N){B(c.1H&&c.C.3T)m c;c.12={};c.1y={};o 15={},17={};M(o p 1a N){o 2e=1f.3t.2V(c.G,p,N[p]);15[p]=2e.15;17[p]=2e.17;c.1y[p]=2e.1y}m c.1r(15,17)},4k:k(){M(o p 1a c.12)c.G.1P(p,c.1y[p].44(c.12[p],c.C.2x,p))}});P.R({3U:k(C){m L 1f.4c(c,C)}});1f.26=1f.2T.R({1i:k(T,C){c.T=$$(T);c.1r(C)},4q:k(){M(o i 1a c.15){o 5Q=c.15[i],47=c.17[i],3u=c.1y[i],5U=c.12[i]={};M(o p 1a 5Q)5U[p]=3u[p].56(5Q[p],47[p],c)}},2j:k(17){o 2e={};c.1y={};M(o i 1a 17){o 47=17[i],3u=c.1y[i]={},9u=2e[i]={};M(o p 1a 47){3u[p]=1f.3t.48(p,47[p]);9u[p]=3u[p].2V(47[p])}}m c.1r(2e)},1g:k(N){B(c.1H&&c.C.3T)m c;c.12={};c.1y={};o 15={},17={};M(o i 1a N){o 85=N[i],5Q=15[i]={},47=17[i]={},3u=c.1y[i]={};M(o p 1a 85){o 2e=1f.3t.2V(c.T[i],p,85[p]);5Q[p]=2e.15;47[p]=2e.17;3u[p]=2e.1y}}m c.1r(15,17)},4k:k(){M(o i 1a c.12){o 5U=c.12[i],3u=c.1y[i];M(o p 1a 5U)c.T[i].1P(p,3u[p].44(5U[p],c.C.2x,p))}}});1f.ah=1f.2T.R({C:{2k:[],1E:{\'x\':0,\'y\':0},9r:1e},1i:k(G,C){c.12=[];c.G=$(G);c.1G={\'1R\':c.1R.W(c,O)};c.1r(C);B(c.C.9r){c.1B(\'3X\',k(){Q.1B(\'5a\',c.1G.1R)}.W(c));c.1B(\'1Q\',k(){Q.4C(\'5a\',c.1G.1R)}.W(c))}},4q:k(){M(o i=0;i<2;i++)c.12[i]=c.4o(c.15[i],c.17[i])},3G:k(x,y){B(c.1H&&c.C.3T)m c;o el=c.G.7g();o 1I={\'x\':x,\'y\':y};M(o z 1a el.3l){o 1D=el.7h[z]-el.3l[z];B($2A(1I[z]))1I[z]=($F(1I[z])==\'4M\')?1I[z].1F(0,1D):1D;14 1I[z]=el.2G[z];1I[z]+=c.C.1E[z]}m c.1g([el.2G.x,el.2G.y],[1I.x,1I.y])},f0:k(){m c.3G(O,0)},eZ:k(){m c.3G(O,\'bu\')},eW:k(){m c.3G(0,O)},eX:k(){m c.3G(\'bu\',O)},8A:k(el){o 1r=c.G.3p(c.C.2k);o 3v=$(el).3p(c.C.2k);m c.3G(3v.x-1r.x,3v.y-1r.y)},4k:k(){c.G.3G(c.12[0],c.12[1])}});1f.eY=1f.2T.R({C:{2b:\'8Q\'},1i:k(el,C){c.G=$(el);c.3c=L P(\'4Z\',{\'8J\':$R(c.G.bg(\'34\'),{\'9y\':\'4O\'})}).6v(c.G).b2(c.G);c.G.1P(\'34\',0);c.2Y(C);c.12=[];c.1r(c.C);c.4X=1e;c.1B(\'1Q\',k(){c.4X=(c.12[0]===0)});B(U.5x)c.1B(\'1Q\',k(){B(c.4X)c.G.2K().28(c.3c)})},4q:k(){M(o i=0;i<2;i++)c.12[i]=c.4o(c.15[i],c.17[i])},8Q:k(){c.34=\'34-1o\';c.64=\'2N\';c.1E=c.G.3R},8M:k(){c.34=\'34-1u\';c.64=\'2y\';c.1E=c.G.4b},ba:k(2b){c[2b||c.C.2b]();m c.1g([c.G.2h(c.34).3d(),c.3c.2h(c.64).3d()],[0,c.1E])},bb:k(2b){c[2b||c.C.2b]();m c.1g([c.G.2h(c.34).3d(),c.3c.2h(c.64).3d()],[-c.1E,0])},3Z:k(2b){c[2b||c.C.2b]();c.4X=O;m c.2j([-c.1E,0])},4d:k(2b){c[2b||c.C.2b]();c.4X=1e;m c.2j([0,c.1E])},f3:k(2b){B(c.3c.3R==0||c.3c.4b==0)m c.ba(2b);m c.bb(2b)},4k:k(){c.G.1P(c.34,c.12[0]+c.C.2x);c.3c.1P(c.64,c.12[1]+c.C.2x)}});1f.7U=k(2f,2U){2U=2U||[];B($F(2U)!=\'1z\')2U=[2U];m $R(2f,{f4:k(1m){m 2f(1m,2U)},f9:k(1m){m 1-2f(1-1m,2U)},fa:k(1m){m(1m<=0.5)?2f(2*1m,2U)/2:(2-2f(2*(1-1m),2U))/2}})};1f.3o=L 3M({fc:k(p){m p}});1f.3o.R=k(7B){M(o 2f 1a 7B){1f.3o[2f]=L 1f.7U(7B[2f]);1f.3o.7X(2f)}};1f.3o.7X=k(2f){[\'f8\',\'f7\',\'f5\'].1q(k(89){1f.3o[2f.5L()+89]=1f.3o[2f][\'f6\'+89]})};1f.3o.R({eD:k(p,x){m 1c.3w(p,x[0]||6)},em:k(p){m 1c.3w(2,8*(p-1))},dw:k(p){m 1-1c.bj(1c.dx(p))},dy:k(p){m 1-1c.bj((1-p)*1c.7W/2)},dv:k(p,x){x=x[0]||1.du;m 1c.3w(p,2)*((x+1)*p-x)},dr:k(p){o J;M(o a=0,b=1;1;a+=b,b/=2){B(p>=(7-4*a)/11){J=-1c.3w((11-6*a-11*p)/4,2)+b*b;1C}}m J},ds:k(p,x){m 1c.3w(2,10*--p)*1c.av(20*p*1c.7W*(x[0]||1)/3)}});[\'dt\',\'dz\',\'dA\',\'dG\'].1q(k(2f,i){1f.3o[2f]=L 1f.7U(k(p){m 1c.3w(p,[i+2])});1f.3o.7X(2f)});o 4g={};4g.2T=L 18({C:{3J:O,2x:\'4W\',3X:18.1l,al:18.1l,1Q:18.1l,as:18.1l,8S:18.1l,1F:O,3E:{x:\'1u\',y:\'1o\'},4P:O,6M:6},1i:k(el,C){c.2Y(C);c.G=$(el);c.3J=$(c.C.3J)||c.G;c.3m={\'12\':{},\'1m\':{}};c.J={\'1g\':{},\'12\':{}};c.1G={\'1g\':c.1g.3e(c),\'4i\':c.4i.3e(c),\'3D\':c.3D.3e(c),\'1R\':c.1R.W(c)};c.6V();B(c.C.1i)c.C.1i.1X(c)},6V:k(){c.3J.1B(\'5n\',c.1G.1g);m c},9F:k(){c.3J.4C(\'5n\',c.1G.1g);m c},1g:k(I){c.1h(\'al\',c.G);c.3m.1g=I.1Y;o 1F=c.C.1F;c.1F={\'x\':[],\'y\':[]};M(o z 1a c.C.3E){B(!c.C.3E[z])6l;c.J.12[z]=c.G.2h(c.C.3E[z]).3d();c.3m.1m[z]=I.1Y[z]-c.J.12[z];B(1F&&1F[z]){M(o i=0;i<2;i++){B($2A(1F[z][i]))c.1F[z][i]=($F(1F[z][i])==\'k\')?1F[z][i]():1F[z][i]}}}B($F(c.C.4P)==\'4M\')c.C.4P={\'x\':c.C.4P,\'y\':c.C.4P};Q.2C(\'2M\',c.1G.4i);Q.2C(\'5z\',c.1G.1R);c.1h(\'3X\',c.G);I.1R()},4i:k(I){o ao=1c.2q(1c.dH(1c.3w(I.1Y.x-c.3m.1g.x,2)+1c.3w(I.1Y.y-c.3m.1g.y,2)));B(ao>c.C.6M){Q.3h(\'2M\',c.1G.4i);Q.2C(\'2M\',c.1G.3D);c.3D(I);c.1h(\'as\',c.G)}I.1R()},3D:k(I){c.69=O;c.3m.12=I.1Y;M(o z 1a c.C.3E){B(!c.C.3E[z])6l;c.J.12[z]=c.3m.12[z]-c.3m.1m[z];B(c.1F[z]){B($2A(c.1F[z][1])&&(c.J.12[z]>c.1F[z][1])){c.J.12[z]=c.1F[z][1];c.69=1e}14 B($2A(c.1F[z][0])&&(c.J.12[z]<c.1F[z][0])){c.J.12[z]=c.1F[z][0];c.69=1e}}B(c.C.4P[z])c.J.12[z]-=(c.J.12[z]%c.C.4P[z]);c.G.1P(c.C.3E[z],c.J.12[z]+c.C.2x)}c.1h(\'8S\',c.G);I.1R()},1R:k(){Q.3h(\'2M\',c.1G.4i);Q.3h(\'2M\',c.1G.3D);Q.3h(\'5z\',c.1G.1R);c.1h(\'1Q\',c.G)}});4g.2T.3i(L 2p,L 43);P.R({dF:k(C){m L 4g.2T(c,$2a({3E:{x:\'2y\',y:\'2N\'}},C))}});4g.aM=4g.2T.R({C:{6c:[],2d:O,2k:[]},1i:k(el,C){c.2Y(C);c.G=$(el);c.6c=$$(c.C.6c);c.2d=$(c.C.2d);c.1v={\'G\':c.G.2h(\'1v\'),\'2d\':O};B(c.2d)c.1v.2d=c.2d.2h(\'1v\');B(![\'70\',\'3Y\',\'4V\'].1j(c.1v.G))c.1v.G=\'3Y\';o 1o=c.G.2h(\'1o\').3d();o 1u=c.G.2h(\'1u\').3d();B(c.1v.G==\'3Y\'&&![\'70\',\'3Y\',\'4V\'].1j(c.1v.2d)){1o=$2A(1o)?1o:c.G.aQ(c.C.2k);1u=$2A(1u)?1u:c.G.aP(c.C.2k)}14{1o=$2A(1o)?1o:0;1u=$2A(1u)?1u:0}c.G.4A({\'1o\':1o,\'1u\':1u,\'1v\':c.1v.G});c.1r(c.G)},1g:k(I){c.3f=1n;B(c.2d){o 4r=c.2d.4E();o el=c.G.4E();B(c.1v.G==\'3Y\'&&![\'70\',\'3Y\',\'4V\'].1j(c.1v.2d)){c.C.1F={\'x\':[4r.1u,4r.4n-el.2y],\'y\':[4r.1o,4r.3P-el.2N]}}14{c.C.1F={\'y\':[0,4r.2N-el.2N],\'x\':[0,4r.2y-el.2y]}}}c.1r(I)},3D:k(I){c.1r(I);o 3f=c.69?O:c.6c.36(c.aO,c).80();B(c.3f!=3f){B(c.3f)c.3f.1h(\'dE\',[c.G,c]);c.3f=3f?3f.1h(\'dB\',[c.G,c]):1n}m c},aO:k(el){el=el.4E(c.C.2k);o 12=c.3m.12;m(12.x>el.1u&&12.x<el.4n&&12.y<el.3P&&12.y>el.1o)},1R:k(){B(c.3f&&!c.69)c.3f.1h(\'dC\',[c.G,c]);14 c.G.1h(\'dD\',c);c.1r();m c}});P.R({dq:k(C){m L 4g.aM(c,C)}});o 6n=L 18({C:{23:\'59\',be:1e,9g:18.1l,5h:18.1l,6w:18.1l,aG:1e,5J:\'dp-8\',aZ:O,4J:{}},7q:k(){c.2u=(U.6C)?L 6C():(U.2P?L 9o(\'en.dc\'):O);m c},1i:k(C){c.7q().2Y(C);c.C.5D=c.C.5D||c.5D;c.4J={};B(c.C.aG&&c.C.23==\'59\'){o 5J=(c.C.5J)?\'; dd=\'+c.C.5J:\'\';c.5l(\'9R-F\',\'9J/x-aS-da-d9\'+5J)}B(c.C.1i)c.C.1i.1X(c)},9s:k(){B(c.2u.5m!=4||!c.4Q)m;c.4Q=O;o 4I=0;5j{4I=c.2u.4I}5c(e){};B(c.C.5D.1X(c,4I))c.5h();14 c.6w();c.2u.7i=18.1l},5D:k(4I){m((4I>=d6)&&(4I<d7))},5h:k(){c.3L={\'1K\':c.2u.d8,\'5t\':c.2u.de};c.1h(\'5h\',[c.3L.1K,c.3L.5t]);c.7z()},6w:k(){c.1h(\'6w\',c.2u)},5l:k(1w,J){c.4J[1w]=J;m c},6a:k(2L,1T){B(c.C.aZ)c.95();14 B(c.4Q)m c;c.4Q=1e;B(1T&&c.C.23==\'5q\'){2L=2L+(2L.1j(\'?\')?\'&\':\'?\')+1T;1T=1n}c.2u.4X(c.C.23.7A(),2L,c.C.be);c.2u.7i=c.9s.W(c);B((c.C.23==\'59\')&&c.2u.d5)c.5l(\'df\',\'dl\');$R(c.4J,c.C.4J);M(o F 1a c.4J)5j{c.2u.dm(F,c.4J[F])}5c(e){};c.1h(\'9g\');c.2u.6a($4T(1T,1n));m c},95:k(){B(!c.4Q)m c;c.4Q=O;c.2u.8s();c.2u.7i=18.1l;c.7q();c.1h(\'7w\');m c}});6n.3i(L 7u,L 2p,L 43);o 9b=6n.R({C:{1T:1n,7x:1n,1Q:18.1l,6R:O,7p:O},1i:k(2L,C){c.1B(\'5h\',c.1Q);c.2Y(C);c.C.1T=c.C.1T||c.C.dn;B(![\'59\',\'5q\'].1j(c.C.23)){c.5H=\'5H=\'+c.C.23;c.C.23=\'59\'}c.1r();c.5l(\'X-dk-dj\',\'6C\');c.5l(\'dg\',\'1K/8q, 1K/dh, 9J/5t, 1K/5t, */*\');c.2L=2L},1Q:k(){B(c.C.7x)$(c.C.7x).1l().5s(c.3L.1K);B(c.C.6R||c.C.7p)c.6R();c.1h(\'1Q\',[c.3L.1K,c.3L.5t],20)},9h:k(1T){1T=1T||c.C.1T;22($F(1T)){Y\'G\':1T=$(1T).5A();1C;Y\'2I\':1T=8X.5A(1T)}B(c.5H)1T=(1T)?[c.5H,1T].2c(\'&\'):c.5H;m c.6a(c.2L,1T)},6R:k(){o 2s,3y;B(c.C.7p||(/(di|dI)2s/).2v(c.af(\'9R-F\')))3y=c.3L.1K;14{3y=[];o 5C=/<2s[^>]*>([\\s\\S]*?)<\\/2s>/dJ;6Z((2s=5C.e9(c.3L.1K)))3y.1k(2s[1]);3y=3y.2c(\'\\n\')}B(3y)(U.9O)?U.9O(3y):U.9M(3y,0)},af:k(1w){5j{m c.2u.ea(1w)}5c(e){};m 1n}});8X.5A=k(1Z){o 5f=[];M(o K 1a 1Z)5f.1k(7e(K)+\'=\'+7e(1Z[K]));m 5f.2c(\'&\')};P.R({6a:k(C){m L 9b(c.5R(\'eb\'),$2a({1T:c.5A()},C,{23:\'59\'})).9h()}});o 3H=L 3M({C:{7o:O,7k:O,49:O,5g:O},2j:k(1t,J,C){C=$2a(c.C,C);J=7e(J);B(C.7o)J+=\'; 7o=\'+C.7o;B(C.7k)J+=\'; 7k=\'+C.7k;B(C.49){o 6k=L 96();6k.e8(6k.9w()+C.49*24*60*60*bd);J+=\'; e7=\'+6k.e4()}B(C.5g)J+=\'; 5g\';Q.4K=1t+\'=\'+J;m $R(C,{\'1t\':1t,\'J\':J})},5q:k(1t){o J=Q.4K.31(\'(?:^|;)\\\\s*\'+1t.b5()+\'=([^;]*)\');m J?e5(J[1]):O},2K:k(4K,C){B($F(4K)==\'2I\')c.2j(4K.1t,\'\',$2a(4K,{49:-1}));14 c.2j(4K,\'\',$2a(C,{49:-1}))}});o 3I={4l:k(N){22($F(N)){Y\'2z\':m\'"\'+N.3g(/(["\\\\])/g,\'\\\\$1\')+\'"\';Y\'1z\':m\'[\'+N.2D(3I.4l).2c(\',\')+\']\';Y\'2I\':o 2z=[];M(o K 1a N)2z.1k(3I.4l(K)+\':\'+3I.4l(N[K]));m\'{\'+2z.2c(\',\')+\'}\';Y\'4M\':B(e6(N))1C;Y O:m\'1n\'}m 6i(N)},5r:k(4H,5g){m(($F(4H)!=\'2z\')||(5g&&!4H.2v(/^("(\\\\.|[^"\\\\\\n\\r])*?"|[,:{}\\[\\]0-9.\\-+ec-u \\n\\r\\t])+?$/)))?1n:ed(\'(\'+4H+\')\')}};3I.ej=6n.R({1i:k(2L,C){c.2L=2L;c.1B(\'5h\',c.1Q);c.1r(C);c.5l(\'X-ek\',\'ei\')},6a:k(N){m c.1r(c.2L,\'eh=\'+3I.4l(N))},1Q:k(){c.1h(\'1Q\',[3I.5r(c.3L.1K,c.C.5g)])}});o ar=L 3M({8q:k(1Z,1J){1J=$2a({\'5N\':18.1l},1J);o 2s=L P(\'2s\',{\'4s\':1Z}).6j({\'4e\':1J.5N,\'ee\':k(){B(c.5m==\'8p\')c.1h(\'4e\')}});57 1J.5N;m 2s.6o(1J).28(Q.6e)},1y:k(1Z,1J){m L P(\'4y\',$2a({\'a1\':\'ef\',\'eg\':\'e3\',\'F\':\'1K/1y\',\'4N\':1Z},1J)).28(Q.6e)},4S:k(1Z,1J){1J=$2a({\'5N\':18.1l,\'e2\':18.1l,\'dP\':18.1l},1J);o 4S=L dQ();4S.4s=1Z;o G=L P(\'8x\',{\'4s\':1Z});[\'4e\',\'8s\',\'aE\'].1q(k(F){o I=1J[\'67\'+F];57 1J[\'67\'+F];G.1B(F,k(){c.4C(F,1b.8t);I.1X(c)})});B(4S.2y&&4S.2N)G.1h(\'4e\',G,1);m G.6o(1J)},6s:k(58,C){C=$2a({1Q:18.1l,an:18.1l},C);B(!58.1k)58=[58];o 6s=[];o 6q=0;58.1q(k(1Z){o 8x=L ar.4S(1Z,{\'5N\':k(){C.an.1X(c,6q);6q++;B(6q==58.V)C.1Q()}});6s.1k(8x)});m L 26(6s)}});o 3O=L 18({V:0,1i:k(2I){c.N=2I||{};c.5K()},5q:k(1t){m(c.6t(1t))?c.N[1t]:1n},6t:k(1t){m(1t 1a c.N)},2j:k(1t,J){B(!c.6t(1t))c.V++;c.N[1t]=J;m c},5K:k(){c.V=0;M(o p 1a c.N)c.V++;m c},2K:k(1t){B(c.6t(1t)){57 c.N[1t];c.V--}m c},1q:k(fn,W){$1q(c.N,fn,W)},R:k(N){$R(c.N,N);m c.5K()},2a:k(){c.N=$2a.4j(1n,[c.N].R(1b));m c.5K()},1l:k(){c.N={};c.V=0;m c},1O:k(){o 1O=[];M(o K 1a c.N)1O.1k(K);m 1O},1I:k(){o 1I=[];M(o K 1a c.N)1I.1k(c.N[K]);m 1I}});k $H(N){m L 3O(N)};3O.3H=3O.R({1i:k(1w,C){c.1w=1w;c.C=$R({\'aw\':1e},C||{});c.4e()},aX:k(){B(c.V==0){3H.2K(c.1w,c.C);m 1e}o 4H=3I.4l(c.N);B(4H.V>dR)m O;3H.2j(c.1w,4H,c.C);m 1e},4e:k(){c.N=3I.5r(3H.5q(c.1w),1e)||{};c.5K()}});3O.3H.2H={};[\'R\',\'2j\',\'2a\',\'1l\',\'2K\'].1q(k(23){3O.3H.2H[23]=k(){3O.1L[23].4j(c,1b);B(c.C.aw)c.aX();m c}});3O.3H.3i(3O.3H.2H);o 2Q=L 18({1i:k(2E,F){F=F||(2E.1k?\'1s\':\'3C\');o 1s,2m;22(F){Y\'1s\':1s=2E;2m=1s.8h();1C;Y\'2m\':1s=2E.b9();2m=2E;1C;62:1s=2E.5G(1e);2m=1s.8h()}1s.2m=2m;1s.3C=1s.5E();m $R(1s,2Q.1L)},54:k(){o 5I=$A(1b);o 7d=($F(5I[5I.V-1])==\'4M\')?5I.dO():50;o 1s=c.8e();5I.1q(k(2E){2E=L 2Q(2E);M(o i=0;i<3;i++)1s[i]=1c.2q((1s[i]/ 35 * (35 - 7d)) + (2E[i] /35*7d))});m L 2Q(1s,\'1s\')},dN:k(){m L 2Q(c.2D(k(J){m 51-J}))},dK:k(J){m L 2Q([J,c.2m[1],c.2m[2]],\'2m\')},dL:k(7a){m L 2Q([c.2m[0],7a,c.2m[2]],\'2m\')},dM:k(7a){m L 2Q([c.2m[0],c.2m[1],7a],\'2m\')}});k $dS(r,g,b){m L 2Q([r,g,b],\'1s\')};k $dT(h,s,b){m L 2Q([h,s,b],\'2m\')};2t.R({8h:k(){o 5W=c[0],65=c[1],75=c[2];o 2W,6y,8k;o 1D=1c.1D(5W,65,75),3s=1c.3s(5W,65,75);o 4p=1D-3s;8k=1D/51;6y=(1D!=0)?4p/1D:0;B(6y==0){2W=0}14{o 8l=(1D-5W)/4p;o 8W=(1D-65)/4p;o br=(1D-75)/4p;B(5W==1D)2W=br-8W;14 B(65==1D)2W=2+8l-br;14 2W=4+8W-8l;2W/=6;B(2W<0)2W++}m[1c.2q(2W*bc),1c.2q(6y*35),1c.2q(8k*35)]},b9:k(){o br=1c.2q(c[2]/35*51);B(c[1]==0){m[br,br,br]}14{o 2W=c[0]%bc;o f=2W%60;o p=1c.2q((c[2]*(35-c[1]))/dZ*51);o q=1c.2q((c[2]*(b7-c[1]*f))/bm*51);o t=1c.2q((c[2]*(b7-c[1]*(60-f)))/bm*51);22(1c.9q(2W/60)){Y 0:m[br,t,p];Y 1:m[q,br,p];Y 2:m[p,br,t];Y 3:m[p,q,br];Y 4:m[t,p,br];Y 5:m[br,p,q]}}m O}});o 9x=L 18({C:{6b:20,8O:1,6F:k(x,y){c.G.3G(x,y)}},1i:k(G,C){c.2Y(C);c.G=$(G);c.8y=([U,Q].1j(G))?$(Q.4B):c.G},1g:k(){c.8z=c.9A.3e(c);c.8y.2C(\'2M\',c.8z)},1R:k(){c.8y.3h(\'2M\',c.8z);c.1H=$55(c.1H)},9A:k(I){c.1Y=(c.G==U)?I.9B:I.1Y;B(!c.1H)c.1H=c.2G.4f(50,c)},2G:k(){o el=c.G.7g();o 1m=c.G.3p();o 3F={\'x\':0,\'y\':0};M(o z 1a c.1Y){B(c.1Y[z]<(c.C.6b+1m[z])&&el.2G[z]!=0)3F[z]=(c.1Y[z]-c.C.6b-1m[z])*c.C.8O;14 B(c.1Y[z]+c.C.6b>(el.3l[z]+1m[z])&&el.2G[z]+el.3l[z]!=el.7h[z])3F[z]=(c.1Y[z]-el.3l[z]+c.C.6b-1m[z])*c.C.8O}B(3F.y||3F.x)c.1h(\'6F\',[el.2G.x+3F.x,el.2G.y+3F.y])}});9x.3i(L 2p,L 43);o 8B=L 18({C:{6F:18.1l,1Q:18.1l,8L:k(1m){c.4h.1P(c.p,1m)},2b:\'8M\',6E:35,1E:0},1i:k(el,4h,C){c.G=$(el);c.4h=$(4h);c.2Y(C);c.8K=-1;c.8D=-1;c.2n=-1;c.G.1B(\'5n\',c.9D.3e(c));o 6H,1E;22(c.C.2b){Y\'8M\':c.z=\'x\';c.p=\'1u\';6H={\'x\':\'1u\',\'y\':O};1E=\'4b\';1C;Y\'8Q\':c.z=\'y\';c.p=\'1o\';6H={\'x\':O,\'y\':\'1o\'};1E=\'3R\'}c.1D=c.G[1E]-c.4h[1E]+(c.C.1E*2);c.a5=c.4h[1E]/2;c.ai=c.G[\'5q\'+c.p.8R()].W(c.G);c.4h.1P(\'1v\',\'70\').1P(c.p,-c.C.1E);o 8U={};8U[c.z]=[-c.C.1E,c.1D-c.C.1E];c.3D=L 4g.2T(c.4h,{1F:8U,3E:6H,6M:0,3X:k(){c.6L()}.W(c),8S:k(){c.6L()}.W(c),1Q:k(){c.6L();c.29()}.W(c)});B(c.C.1i)c.C.1i.1X(c)},2j:k(2n){c.2n=2n.1F(0,c.C.6E);c.6G();c.29();c.1h(\'8L\',c.a0(c.2n));m c},9D:k(I){o 1v=I.1Y[c.z]-c.ai()-c.a5;1v=1v.1F(-c.C.1E,c.1D-c.C.1E);c.2n=c.8C(1v);c.6G();c.29();c.1h(\'8L\',1v)},6L:k(){c.2n=c.8C(c.3D.J.12[c.z]);c.6G()},6G:k(){B(c.8K!=c.2n){c.8K=c.2n;c.1h(\'6F\',c.2n)}},29:k(){B(c.8D!==c.2n){c.8D=c.2n;c.1h(\'1Q\',c.2n+\'\')}},8C:k(1v){m 1c.2q((1v+c.C.1E)/c.1D*c.C.6E)},a0:k(2n){m c.1D*2n/c.C.6E}});8B.3i(L 2p);8B.3i(L 43);o e0=1f.ah.R({1i:k(C){c.1r(U,C);c.5w=(c.C.5w)?$$(c.C.5w):$$(Q.5w);o 5k=U.5k.4N.31(/^[^#]*/)[0]+\'#\';c.5w.1q(k(4y){B(4y.4N.3k(5k)!=0)m;o 3K=4y.4N.6K(5k.V);B(3K&&$(3K))c.9L(4y,3K)},c);B(!U.5x)c.1B(\'1Q\',k(){U.5k.e1=c.3K})},9L:k(4y,3K){4y.1B(\'6h\',k(I){c.3K=3K;c.8A(3K);I.1R()}.3e(c))}});o 9S=L 18({C:{4L:O,3X:18.1l,1Q:18.1l,2S:1e,6M:3,9H:k(G,2S){2S.1P(\'21\',0.7);G.1P(\'21\',0.7)},9e:k(G,2S){G.1P(\'21\',1);2S.2K();c.3V.2K()}},1i:k(5p,C){c.2Y(C);c.5p=$(5p);c.T=c.5p.8H();c.4L=(c.C.4L)?$$(c.C.4L):c.T;c.1G={\'1g\':[],\'5y\':c.5y.3e(c)};M(o i=0,l=c.4L.V;i<l;i++){c.1G.1g[i]=c.1g.3e(c,c.T[i])}c.6V();B(c.C.1i)c.C.1i.1X(c);c.1G.5o=c.5o.3e(c);c.1G.29=c.29.W(c)},6V:k(){c.4L.1q(k(3J,i){3J.1B(\'5n\',c.1G.1g[i])},c)},9F:k(){c.4L.1q(k(3J,i){3J.4C(\'5n\',c.1G.1g[i])},c)},1g:k(I,el){c.4G=el;c.8F=c.5p.4E();B(c.C.2S){o 1v=el.3p();c.1E=I.1Y.y-1v.y;c.3V=L P(\'4Z\').28(Q.4B);c.2S=el.9G().28(c.3V).4A({\'1v\':\'3Y\',\'1u\':1v.x,\'1o\':I.1Y.y-c.1E});Q.2C(\'2M\',c.1G.5y);c.1h(\'9H\',[el,c.2S])}Q.2C(\'2M\',c.1G.5o);Q.2C(\'5z\',c.1G.29);c.1h(\'3X\',el);I.1R()},5y:k(I){o J=I.1Y.y-c.1E;J=J.1F(c.8F.1o,c.8F.3P-c.2S.3R);c.2S.1P(\'1o\',J);I.1R()},5o:k(I){o 12=I.1Y.y;c.2l=c.2l||12;o 6P=((c.2l-12)>0);o 6T=c.4G.9W();o 3x=c.4G.8I();B(6T&&6P&&12<6T.4E().3P)c.4G.7Y(6T);B(3x&&!6P&&12>3x.4E().1o)c.4G.6v(3x);c.2l=12},dY:k(9Q){m c.5p.8H().2D(9Q||k(el){m c.T.3k(el)},c)},29:k(){c.2l=1n;Q.3h(\'2M\',c.1G.5o);Q.3h(\'5z\',c.1G.29);B(c.C.2S){Q.3h(\'2M\',c.1G.5y);c.1h(\'9e\',[c.4G,c.2S])}c.1h(\'1Q\',c.4G)}});9S.3i(L 2p,L 43);o aI=L 18({C:{aT:k(3W){3W.1P(\'4z\',\'8G\')},aW:k(3W){3W.1P(\'4z\',\'4O\')},8T:30,bp:35,bt:35,1A:\'dX\',5F:{\'x\':16,\'y\':16},4V:O},1i:k(T,C){c.2Y(C);c.45=L P(\'4Z\',{\'4R\':c.C.1A+\'-3W\',\'8J\':{\'1v\':\'3Y\',\'1o\':\'0\',\'1u\':\'0\',\'4z\':\'4O\'}}).28(Q.4B);c.3c=L P(\'4Z\').28(c.45);$$(T).1q(c.9I,c);B(c.C.1i)c.C.1i.1X(c)},9I:k(el){el.$1W.42=(el.4N&&el.4D()==\'a\')?el.4N.3g(\'9Y://\',\'\'):(el.a1||O);B(el.53){o 6z=el.53.68(\'::\');B(6z.V>1){el.$1W.42=6z[0].5T();el.$1W.5u=6z[1].5T()}14{el.$1W.5u=el.53}el.a7(\'53\')}14{el.$1W.5u=O}B(el.$1W.42&&el.$1W.42.V>c.C.8T)el.$1W.42=el.$1W.42.6K(0,c.C.8T-1)+"&dU;";el.1B(\'8N\',k(I){c.1g(el);B(!c.C.4V)c.8f(I);14 c.1v(el)}.W(c));B(!c.C.4V)el.1B(\'2M\',c.8f.3e(c));o 29=c.29.W(c);el.1B(\'8P\',29);el.1B(\'3V\',29)},1g:k(el){c.3c.1l();B(el.$1W.42){c.53=L P(\'b0\').28(L P(\'4Z\',{\'4R\':c.C.1A+\'-53\'}).28(c.3c)).5s(el.$1W.42)}B(el.$1W.5u){c.1K=L P(\'b0\').28(L P(\'4Z\',{\'4R\':c.C.1A+\'-1K\'}).28(c.3c)).5s(el.$1W.5u)}$55(c.1H);c.1H=c.4d.2g(c.C.bp,c)},29:k(I){$55(c.1H);c.1H=c.3Z.2g(c.C.bt,c)},1v:k(G){o 1m=G.3p();c.45.4A({\'1u\':1m.x+c.C.5F.x,\'1o\':1m.y+c.C.5F.y})},8f:k(I){o am={\'x\':U.8m(),\'y\':U.8n()};o 2G={\'x\':U.8u(),\'y\':U.8v()};o 3W={\'x\':c.45.4b,\'y\':c.45.3R};o 1V={\'x\':\'1u\',\'y\':\'1o\'};M(o z 1a 1V){o 1m=I.1Y[z]+c.C.5F[z];B((1m+3W[z]-2G[z])>am[z])1m=I.1Y[z]-c.C.5F[z]-3W[z];c.45.1P(1V[z],1m)}},4d:k(){B(c.C.aq)c.1H=c.3Z.2g(c.C.aq,c);c.1h(\'aT\',[c.45])},3Z:k(){c.1h(\'aW\',[c.45])}});aI.3i(L 2p,L 43);o dV=L 18({1i:k(){c.6D=$A(1b);c.19={};c.4U={}},1B:k(F,fn){c.4U[F]=c.4U[F]||{};c.19[F]=c.19[F]||[];B(c.19[F].1j(fn))m O;14 c.19[F].1k(fn);c.6D.1q(k(5v,i){5v.1B(F,c.4i.W(c,[F,5v,i]))},c);m c},4i:k(F,5v,i){c.4U[F][i]=1e;o 4F=c.6D.4F(k(2i,j){m c.4U[F][j]||O},c);B(!4F)m;c.4U[F]={};c.19[F].1q(k(I){I.1X(c,c.6D,5v)},c)}});o 7t=1f.26.R({C:{7K:18.1l,aa:18.1l,3Q:0,4d:O,2N:1e,2y:O,21:1e,7f:O,7n:O,3T:O,6I:O},1i:k(){o C,2B,T,2d;$1q(1b,k(4t,i){22($F(4t)){Y\'2I\':C=4t;1C;Y\'G\':2d=$(4t);1C;62:o 2r=$$(4t);B(!2B)2B=2r;14 T=2r}});c.2B=2B||[];c.T=T||[];c.2d=$(2d);c.2Y(C);c.2l=-1;B(c.C.6I)c.C.3T=1e;B($2A(c.C.4d)){c.C.3Q=O;c.2l=c.C.4d}B(c.C.1g){c.C.3Q=O;c.C.4d=O}c.3U={};B(c.C.21)c.3U.21=\'b8\';B(c.C.2y)c.3U.2y=c.C.7n?\'aj\':\'4b\';B(c.C.2N)c.3U.2N=c.C.7f?\'9n\':\'5P\';M(o i=0,l=c.2B.V;i<l;i++)c.aR(c.2B[i],c.T[i]);c.T.1q(k(el,i){B(c.C.4d===i){c.1h(\'7K\',[c.2B[i],el])}14{M(o 2O 1a c.3U)el.1P(2O,0)}},c);c.1r(c.T);B($2A(c.C.3Q))c.3Q(c.C.3Q)},aR:k(3j,G,1m){3j=$(3j);G=$(G);o 2v=c.2B.1j(3j);o 3S=c.2B.V;c.2B.5S(3j);c.T.5S(G);B(3S&&(!2v||1m)){1m=$4T(1m,3S-1);3j.7Y(c.2B[1m]);G.6v(3j)}14 B(c.2d&&!2v){3j.28(c.2d);G.28(c.2d)}o aA=c.2B.3k(3j);3j.1B(\'6h\',c.3Q.W(c,aA));B(c.C.2N)G.4A({\'4w-1o\':0,\'2R-1o\':\'7j\',\'4w-3P\':0,\'2R-3P\':\'7j\'});B(c.C.2y)G.4A({\'4w-1u\':0,\'2R-1u\':\'7j\',\'4w-4n\':0,\'2R-4n\':\'7j\'});G.b8=1;B(c.C.7n)G.aj=c.C.7n;B(c.C.7f)G.9n=c.C.7f;G.1P(\'9y\',\'4O\');B(!2v){M(o 2O 1a c.3U)G.1P(2O,0)}m c},3Q:k(25){25=($F(25)==\'G\')?c.T.3k(25):25;B((c.1H&&c.C.3T)||(25===c.2l&&!c.C.6I))m c;c.2l=25;o N={};c.T.1q(k(el,i){N[i]={};o 3Z=(i!=25)||(c.C.6I&&(el.3R>0));c.1h(3Z?\'aa\':\'7K\',[c.2B[i],el]);M(o 2O 1a c.3U)N[i][2O]=3Z?0:el[c.3U[2O]]},c);m c.1g(N)},dW:k(25){m c.3Q(25)}});1f.7t=7t;',62,956,'||||||||||||this||||||||function||return||var|||||||||||||if|options|||type|element||event|value|property|new|for|obj|false|Element|document|extend||elements|window|length|bind||case||||now||else|from||to|Class|events|in|arguments|Math|param|true|Fx|start|fireEvent|initialize|contains|push|empty|pos|null|top|args|each|parent|rgb|key|left|position|name|items|css|array|className|addEvent|break|max|offset|limit|bound|timer|values|properties|text|prototype|result|style|keys|setStyle|onComplete|stop|selector|data|props|prop|tmp|call|page|source||opacity|switch|method||index|Elements||inject|end|merge|mode|join|container|parsed|transition|delay|getStyle|current|set|overflown|previous|hsb|step|relatedTarget|Events|round|temp|script|Array|transport|test|custom|unit|width|string|chk|togglers|addListener|map|color|Garbage|scroll|Methods|object|nocash|remove|url|mousemove|height|fx|ie|Color|border|ghost|Base|params|parse|hue|Event|setOptions|documentElement||match||getElementsByTagName|margin|100|filter||||create|context|wrapper|toInt|bindWithEvent|overed|replace|removeListener|implement|toggler|indexOf|size|mouse|parentNode|Transitions|getPosition|tag|item|min|CSS|iCss|target|pow|next|scripts|option|time|shared|hex|drag|modifiers|change|scrollTo|Cookie|Json|handle|anchor|response|Abstract|returns|Hash|bottom|display|offsetHeight|len|wait|effects|trash|tip|onStart|absolute|hide||iterable|myTitle|Options|getValue|toolTip||iTo|select|duration|xpath|offsetWidth|Styles|show|load|periodical|Drag|knob|check|apply|increase|toString|val|right|compute|delta|setNow|cont|src|argument|id|chains|padding|webkit|link|visibility|setStyles|body|removeEvent|getTag|getCoordinates|every|active|str|status|headers|cookie|handles|number|href|hidden|grid|running|class|image|pick|checker|fixed|px|open|results|div||255|collect|title|mix|clear|getNow|delete|sources|post|mousewheel|fromTo|catch|bit|native|queryString|secure|onSuccess|htmlElement|try|location|setHeader|readyState|mousedown|move|list|get|evaluate|setHTML|xml|myText|instance|links|webkit419|moveGhost|mouseup|toQueryString|HTMLElement|regexp|isSuccess|rgbToHex|offsets|hexToRgb|_method|colors|encoding|setLength|toLowerCase|unique|onload|parseInt|scrollHeight|iFrom|getProperty|include|trim|iNow|scrollLeft|red|domReady|precision|klass||walk|default|scrollTop|layout|green|parseFloat|on|split|out|send|area|droppables|mp|head|attempt|evType|click|String|addEvents|date|continue|fix|XHR|setProperties|currentStyle|counter|included|images|hasKey|brother|injectAfter|onFailure|generic|saturation|dual|Properties|loaded|XMLHttpRequest|instances|steps|onChange|checkStep|mod|alwaysHide|Listeners|substr|draggedKnob|snap|getElements|code|up|fKey|evalScripts|tagName|prev|stopPropagation|attach|getElementById|preventDefault|getElementsBySelector|while|relative|scrollWidth|setMany|Multi|splice|blue|realType|defined|removeEvents|regex|percent|forEach|typeof|alpha|encodeURIComponent|fixedHeight|getSize|scrollSize|onreadystatechange|none|path|setProperty|proto|fixedWidth|domain|evalResponse|setTransport|clean|hasClass|Accordion|Chain|unload|onCancel|update|RegExp|callChain|toUpperCase|transitions|qs|disabled|checked|add|pairs|getMany|ie_ready|multiple|onActive|getParam|found|xhtml|getItems|concat|selected|Dom|domready|Style|Transition|flag|PI|compat|injectBefore|Function|getLast|node|operator|innerText|nodeType|iProps|appendChild|cssText|firstChild|easeType|camelCase|DOMMouseScroll|random|charAt|copy|locate|newArray|rgbToHsb|merged|addEventListener|brightness|rr|getWidth|getHeight|hasChild|complete|javascript|gecko|abort|callee|getScrollLeft|getScrollTop|pageY|img|mousemover|coord|toElement|Slider|toStep|previousEnd|pageX|coordinates|visible|getChildren|getNext|styles|previousChange|onTick|horizontal|mouseenter|velocity|mouseleave|vertical|capitalize|onDrag|maxTitleChars|lim|NativeEvents|gr|Object|mouseout|first|mouseover|insertBefore|getScrollHeight|getScrollWidth|after|cancel|Date|borderShort|fps|pageXOffset|opera|Ajax|clientWidth|clientHeight|onDragComplete|clientX|onRequest|request|pageYOffset|Single|before|Merge|pp|fullHeight|ActiveXObject|wheelDelta|floor|wheelStops|onStateChange|beforeunload|iParsed|direction|getTime|Scroller|overflow|addClass|getCoords|client|constructor|clickedElement|removeClass|detach|clone|onDragStart|build|application|which|useLink|setTimeout|undefined|execScript|getElement|converter|Content|Sortables|normal|sel|contents|getPrevious|keydown|http|prefix|toPosition|rel|filterById|PropertiesIFlag|removeEventListener|half|Left|removeAttribute|filterByClass|filterByAttribute|onBackground|input|resolver|textarea|getFormElements|getHeader|ie6|Scroll|getPos|fullWidth|zoom|onBeforeStart|win|onProgress|distance||timeout|Asset|onSnap|clientY|cloneEvents|cos|autoSave|nodeValue|where|Bottom|idx|elementsProperty|childNodes|relatedTargetGecko|error|defaultView|urlEncoded|toFloat|Tips|createElement|shift|hyphenate|Move|Number|checkAgainst|getLeft|getTop|addSection|www|onShow|fixRelatedTarget|interval|onHide|save|picked|autoCancel|span|textContent|adopt|innerHTML|styleSheet|escapeRegExp|fixStyle|6000|fullOpacity|hsbToRgb|slideIn|slideOut|360|1000|async|Width|getStyles|slice|Top|sin|setOpacity|removeChild|600000|appendText|0px|showDelay|extended||Right|hideDelay|full|button|menu|shiftKey|metaKey|altKey|fromCharCode|frameborder|ctrlKey|attachEvent|detail|srcElement|control|CollectGarbage|readonly|frameBorder|alt|keyCode|111|readOnly|meta|detachEvent|120|rightClick|wheel|pass|some|associate|getRandom|clearChain|chain|DOMElement|execCommand|BackgroundImageCache|transparent|setInterval|embed|boolean|injectInside|times|bindAsEventListener|err|fromElement|iframe|khtml|whitespace|collection|clearTimeout|textnode|nodeName|MooTools|version|clearInterval|Window|taintEnabled|webkit420|getBoxObjectFor|navigator|all|Document|ie7|injectTop|cloneNode|borderStyle|borderColor|htmlFor|borderWidth|getText|getProperties|setAttribute|setText|colspan|colSpan|tabindex|tabIndex|maxlength|accessKey|accesskey|rowspan|rowSpan|removeProperty|attributes|float|styleFloat|cssFloat|toggleClass|createTextNode|replaceWith|replaceChild|zIndex|hasLayout|lastChild|getParent|getAttribute|getFirst|Sibling|getComputedStyle|getPropertyValue|maxLength|overrideMimeType|200|300|responseText|urlencoded|form|cancelBubble|XMLHTTP|charset|responseXML|Connection|Accept|html|ecma|With|Requested|close|setRequestHeader|postBody||utf|makeDraggable|Bounce|Elastic|Quad|618|Back|Circ|acos|Sine|Cubic|Quart|over|drop|emptydrop|leave|makeResizable|Quint|sqrt|java|gi|setHue|setSaturation|setBrightness|invert|pop|onerror|Image|4096|RGB|HSB|hellip|Group|showThisHideOpen|tool|serialize|10000|SmoothScroll|hash|onabort|screen|toGMTString|decodeURIComponent|isFinite|expires|setTime|exec|getResponseHeader|action|Eaeflnr|eval|readystatechange|stylesheet|media|json|JSON|Remote|Request||Expo|Microsoft|substring|XPathResult|UNORDERED_NODE_SNAPSHOT_TYPE|with|starts|ES|namespaceURI|snapshotLength|snapshotItem|checkbox|radio|getElementsByClassName|1999|w3|org|Pow|contextmenu|space|backspace|tab|esc|down|returnValue|enter|dblclick|keypress|submit|reset|blur|focus|keyup|resize|password|filterByTag|toLeft|toRight|Slide|toBottom|toTop|clearTimer|effect|toggle|easeIn|InOut|ease|Out|In|easeOut|easeInOut|500|linear|defer|DOMContentLoaded|protocol|write|offsetTop|https|offsetParent|void|innerWidth|onDomReady||innerHeight|offsetLeft'.split('|'),0,{}))
diff --git a/abs/core/zoneminder/zm.conf.patch b/abs/core/zoneminder/zm.conf.patch
deleted file mode 100644
index f7a9870..0000000
--- a/abs/core/zoneminder/zm.conf.patch
+++ /dev/null
@@ -1,20 +0,0 @@
---- ZoneMinder-1.23.3/zm.conf.in.orig	2006-11-16 01:06:30.000000000 -0800
-+++ ZoneMinder-1.23.3/zm.conf.in	2007-09-26 16:51:06.000000000 -0700
-@@ -14,6 +14,7 @@
- 
- # Path to build directory, used mostly for finding DB upgrade scripts
- ZM_PATH_BUILD=@PATH_BUILD@
-+ZM_PATH_UPDATE=/usr/lib/zm/upgrade
- 
- # Build time, used to record when to trigger various checks
- ZM_TIME_BUILD=@TIME_BUILD@
-@@ -44,7 +45,7 @@
- ZM_DB_NAME=@ZM_DB_NAME@
- 
- # ZoneMinder database user
--ZM_DB_USER=@ZM_DB_USER@
-+ZM_DB_USER=mythtv
- 
- # ZoneMinder database password
--ZM_DB_PASS=@ZM_DB_PASS@
-+ZM_DB_PASS=mythtv
diff --git a/abs/core/zoneminder/zm.rc.d b/abs/core/zoneminder/zm.rc.d
old mode 100644
new mode 100755
index 00cd73c..60f684b
--- a/abs/core/zoneminder/zm.rc.d
+++ b/abs/core/zoneminder/zm.rc.d
@@ -5,7 +5,7 @@
 . /etc/rc.d/functions
 
 prog=ZoneMinder
-ZM_VERSION="1.23.3"
+ZM_VERSION="1.24.0"
 ZM_PATH_BIN="/usr/lib/zm/bin"
 ZM_CONFIG="/etc/zm.conf"
 command="$ZM_PATH_BIN/zmpkg.pl"
@@ -99,7 +99,7 @@ start()
 	chown -R $ZM_WEB_USER:$ZM_WEB_GROUP /var/run/zm
 	GetPath="select Value from Config where Name='ZM_PATH_SOCKS'"
 	ZM_PATH_SOCK=`echo $GetPath | mysql -B -h $ZM_DB_HOST -u $ZM_DB_USER -p$ZM_DB_PASS $ZM_DB_NAME | grep -v '^Value'`
-	[ -d $ZM_PATH_SOCK ] || mkdir -m 774 $ZM_PATH_SOCK 
+	[ -d $ZM_PATH_SOCK ] || mkdir -m 774 -p $ZM_PATH_SOCK 
 	sudo -u  $ZM_WEB_USER test -O  $ZM_PATH_SOCK \
 	|| chown -R $ZM_WEB_USER:$ZM_WEB_GROUP $ZM_PATH_SOCK
 	# Setup the log dir
diff --git a/abs/core/zoneminder/zmeventbackup b/abs/core/zoneminder/zmeventbackup
new file mode 100755
index 0000000..71c9538
--- /dev/null
+++ b/abs/core/zoneminder/zmeventbackup
@@ -0,0 +1,48 @@
+#!/bin/bash
+#===============================================================================
+#
+#          FILE:  eventdump.sh
+# 
+#         USAGE:  ./eventdump.sh 
+# 
+#   DESCRIPTION:  Uses mysqldump to create a .sql file for individual zm
+#                events to make Event table recovery possible by doing a
+#                'find' search in ZoneMinder the events directory
+# 
+#       OPTIONS:  ---
+#  REQUIREMENTS:  --- mysqldump
+#          BUGS:  ---
+#         NOTES:  ---
+#        AUTHOR:   Ross Melin <rdmelin@gmail.com> 
+#       COMPANY:  
+#       VERSION:  1.0
+#       CREATED:  03/06/2008 11:51:19 AM PST
+#      REVISION:  ---
+#===============================================================================
+
+# Edit these to suit your configuration
+ZM_CONFIG=/etc/zm.conf
+MYSQLDUMP=/usr/bin/mysqldump
+EVENTSDIR=/var/lib/zm/www/events
+
+# The rest should not need editing
+
+# Get the mysql user and password
+source $ZM_CONFIG
+MYDUMPOPTS="--user=$ZM_DB_USER --password=$ZM_DB_PASS --skip-opt --compact --quick --no-create-info"
+
+
+for tag in $(find $EVENTSDIR -amin -65 -name ".[0-9]*")
+	do
+		EVENT_PATH=$(echo $tag |cut -f 1 -d .)
+		EVENT_ID=$(echo $tag |cut -f 2 -d .)
+		# Dump the sql statements needed to reload the Events, Frames and Stats tables
+
+		echo "-- ZM_DB_VERSION=$ZM_VERSION
+" > $EVENT_PATH.sql
+
+		$MYSQLDUMP $MYDUMPOPTS --where="Id=$EVENT_ID" zm Events >> $EVENT_PATH.sql
+		$MYSQLDUMP $MYDUMPOPTS --where="Eventid=$EVENT_ID" zm Frames >> $EVENT_PATH.sql
+		$MYSQLDUMP $MYDUMPOPTS --where="Eventid=$EVENT_ID" zm Stats >> $EVENT_PATH.sql
+
+done
diff --git a/abs/core/zoneminder/zmeventdump b/abs/core/zoneminder/zmeventdump
deleted file mode 100755
index 17087b9..0000000
--- a/abs/core/zoneminder/zmeventdump
+++ /dev/null
@@ -1,48 +0,0 @@
-#!/bin/bash
-#===============================================================================
-#
-#          FILE:  eventdump.sh
-# 
-#         USAGE:  ./eventdump.sh 
-# 
-#   DESCRIPTION:  Uses mysqldump to create a .sql file for individual zm
-#                events to make Event table recovery possible by doing a
-#                'find' search in ZoneMinder the events directory
-# 
-#       OPTIONS:  ---
-#  REQUIREMENTS:  --- mysqldump
-#          BUGS:  ---
-#         NOTES:  ---
-#        AUTHOR:   Ross Melin <rdmelin@gmail.com> 
-#       COMPANY:  
-#       VERSION:  1.0
-#       CREATED:  03/06/2008 11:51:19 AM PST
-#      REVISION:  ---
-#===============================================================================
-
-# Edit these to suit your configuration
-ZM_CONFIG=/etc/zm.conf
-MYSQLDUMP=/usr/bin/mysqldump
-EVENTSDIR=/home/httpd/html/zm/events
-
-# The rest should not need editing
-
-# Get the mysql user and password
-source $ZM_CONFIG
-MYDUMPOPTS="--user=$ZM_DB_USER --password=$ZM_DB_PASS --skip-opt --compact --quick --no-create-info"
-
-
-for tag in $(find $EVENTSDIR -amin -65 -name ".[0-9]*")
-	do
-		EVENT_PATH=$(echo $tag |cut -f 1 -d .)
-		EVENT_ID=$(echo $tag |cut -f 2 -d .)
-		# Dump the sql statements needed to reload the Events, Frames and Stats tables
-
-		echo "-- ZM_DB_VERSION=$ZM_VERSION
-" > $EVENT_PATH.sql
-
-		$MYSQLDUMP $MYDUMPOPTS --where="Id=$EVENT_ID" zm Events >> $EVENT_PATH.sql
-		$MYSQLDUMP $MYDUMPOPTS --where="Eventid=$EVENT_ID" zm Frames >> $EVENT_PATH.sql
-		$MYSQLDUMP $MYDUMPOPTS --where="Eventid=$EVENT_ID" zm Stats >> $EVENT_PATH.sql
-
-done
diff --git a/abs/core/zoneminder/zmfilter.pl b/abs/core/zoneminder/zmfilter.pl
new file mode 100755
index 0000000..7875937
--- /dev/null
+++ b/abs/core/zoneminder/zmfilter.pl
@@ -0,0 +1,1119 @@
+#!/usr/bin/perl -wT
+#
+# ==========================================================================
+#
+# ZoneMinder Event Filter Script, $Date: 2008-10-09 10:17:07 +0100 (Thu, 09 Oct 2008) $, $Revision: 2659 $
+# Copyright (C) 2001-2008 Philip Coombes
+#
+# 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.
+#
+# ==========================================================================
+#
+# This script continuously monitors the recorded events for the given
+# monitor and applies any filters which would delete and/or upload 
+# matching events
+#
+use strict;
+use bytes;
+
+# ==========================================================================
+#
+# These are the elements you can edit to suit your installation
+#
+# ==========================================================================
+
+use constant DBG_ID => "zmfilter"; # Tag that appears in debug to identify source
+use constant DBG_LEVEL => 0; # 0 is errors, warnings and info only, > 0 for debug
+
+use constant START_DELAY => 5; # How long to wait before starting
+
+# ==========================================================================
+#
+# You shouldn't need to change anything from here downwards
+#
+# ==========================================================================
+
+use ZoneMinder;
+use DBI;
+use POSIX;
+use Time::HiRes qw/gettimeofday/;
+use Date::Manip;
+use Getopt::Long;
+use PHP::Serialization qw(serialize unserialize);
+use Data::Dumper;
+
+use constant EVENT_PATH => ZM_PATH_WEB.'/'.ZM_DIR_EVENTS;
+
+zmDbgInit( DBG_ID, level=>DBG_LEVEL );
+zmDbgSetSignal();
+
+if ( ZM_OPT_UPLOAD )
+{
+    # Comment these out if you don't have them and don't want to upload
+    # or don't want to use that format
+    if ( ZM_UPLOAD_ARCH_FORMAT eq "zip" )
+    {
+        require Archive::Zip;
+        import Archive::Zip qw( :ERROR_CODES :CONSTANTS );
+    }
+    else
+    {
+        require Archive::Tar;
+    }
+    require Net::FTP;
+}
+
+if ( ZM_OPT_EMAIL )
+{
+    if ( ZM_NEW_MAIL_MODULES )
+    {
+        require MIME::Lite;
+        require Net::SMTP;
+    }
+    else
+    {
+        require MIME::Entity;
+    }
+}
+
+if ( ZM_OPT_MESSAGE )
+{
+    if ( ZM_NEW_MAIL_MODULES )
+    {
+        require MIME::Lite;
+        require Net::SMTP;
+    }
+    else
+    {
+        require MIME::Entity;
+    }
+}
+
+
+$| = 1;
+
+$ENV{PATH}  = '/bin:/usr/bin';
+$ENV{SHELL} = '/bin/sh' if exists $ENV{SHELL};
+delete @ENV{qw(IFS CDPATH ENV BASH_ENV)};
+
+my $delay = ZM_FILTER_EXECUTE_INTERVAL;
+my $event_id = 0;
+my $filter_parm = "";
+
+sub Usage
+{
+    print( "
+Usage: zmfilter.pl [-f <filter name>,--filter=<filter name>]
+Parameters are :-
+-f<filter name>, --filter=<filter name>  - The name of a specific filter to run
+");
+    exit( -1 );
+}
+
+#
+# More or less replicates the equivalent PHP function
+#
+sub strtotime
+{
+    my $dt_str = shift;
+    return( UnixDate( $dt_str, '%s' ) );
+}
+
+#
+# More or less replicates the equivalent PHP function
+#
+sub str_repeat
+{
+    my $string = shift;
+    my $count = shift;
+    return( ${string}x${count} );
+}
+
+# Formats a date into MySQL format
+sub DateTimeToSQL
+{
+    my $dt_str = shift;
+    my $dt_val = strtotime( $dt_str );
+    if ( !$dt_val )
+    {
+        Error( "Unable to parse date string '$dt_str'\n" );
+        return( undef );
+    }
+    return( strftime( "%Y-%m-%d %H:%M:%S", localtime( $dt_val ) ) );
+}
+
+if ( !GetOptions( 'filter=s'=>\$filter_parm ) )
+{
+    Usage();
+}
+
+chdir( EVENT_PATH );
+
+my $dbh = zmDbConnect();
+
+if ( $filter_parm )
+{
+    Info( "Scanning for events using filter '$filter_parm'\n" );
+}
+else
+{
+    Info( "Scanning for events\n" );
+}
+
+if ( !$filter_parm )
+{
+    sleep( START_DELAY );
+}
+
+my $filters;
+my $last_action = 0;
+
+while( 1 )
+{
+    if ( (time() - $last_action) > ZM_FILTER_RELOAD_DELAY )
+    {
+        Debug( "Reloading filters\n" );
+        $last_action = time();
+        $filters = getFilters( $filter_parm );
+    }
+
+    foreach my $filter ( @$filters )
+    {
+        checkFilter( $filter );
+    }
+
+    last if ( $filter_parm );
+
+    Debug( "Sleeping for $delay seconds\n" );
+    sleep( $delay );
+}
+
+sub getDiskPercent
+{
+    my $command = "df .";
+    my $df = qx( $command );
+    my $space = -1;
+    if ( $df =~ /\s(\d+)%/ms )
+    {
+        $space = $1;
+    }
+    return( $space );
+}
+
+sub getDiskBlocks
+{
+    my $command = "df .";
+    my $df = qx( $command );
+    my $space = -1;
+    if ( $df =~ /\s(\d+)\s+\d+\s+\d+%/ms )
+    {
+        $space = $1;
+    }
+    return( $space );
+}
+
+sub getLoad
+{
+    my $command = "uptime .";
+    my $uptime = qx( $command );
+    my $load = -1;
+    if ( $uptime =~ /load average:\s+([\d.]+)/ms )
+    {
+        $load = $1;
+        Info( "Load: $load" );
+    }
+    return( $load );
+}
+
+sub getFilters
+{
+    my $filter_name = shift;
+
+    my @filters;
+    my $sql = "select * from Filters where";
+    if ( $filter_name )
+    {
+        $sql .= " Name = ? and";
+    }
+    else
+    {
+        $sql .= " Background = 1 and";
+    }
+    $sql .= " (AutoArchive = 1 or AutoVideo = 1 or AutoUpload = 1 or AutoEmail = 1 or AutoMessage = 1 or AutoExecute = 1 or AutoDelete = 1) order by Name";
+    my $sth = $dbh->prepare_cached( $sql ) or Fatal( "Can't prepare '$sql': ".$dbh->errstr() );
+    my $res;
+    if ( $filter_name )
+    {
+        $res = $sth->execute( $filter_name ) or Fatal( "Can't execute '$sql': ".$sth->errstr() );
+    }
+    else
+    {
+        $res = $sth->execute() or Fatal( "Can't execute '$sql': ".$sth->errstr() );
+    }
+    FILTER: while( my $db_filter = $sth->fetchrow_hashref() )
+    {
+        Debug( "Found filter '$db_filter->{Name}'\n" );
+        my $filter_expr = unserialize( $db_filter->{Query} );
+        my $sql = "select E.Id,E.MonitorId,M.Name as MonitorName,M.DefaultRate,M.DefaultScale,E.Name,E.Cause,E.Notes,E.StartTime,unix_timestamp(E.StartTime) as Time,E.Length,E.Frames,E.AlarmFrames,E.TotScore,E.AvgScore,E.MaxScore,E.Archived,E.Videoed,E.Uploaded,E.Emailed,E.Messaged,E.Executed from Events as E inner join Monitors as M on M.Id = E.MonitorId where not isnull(E.EndTime)";
+	    $db_filter->{Sql} = '';
+
+        if ( @{$filter_expr->{terms}} )
+        {
+            for ( my $i = 0; $i < @{$filter_expr->{terms}}; $i++ )
+            {
+                if ( exists($filter_expr->{terms}[$i]->{cnj}) )
+                {
+                    $db_filter->{Sql} .= " ".$filter_expr->{terms}[$i]->{cnj}." ";
+                }
+                if ( exists($filter_expr->{terms}[$i]->{obr}) )
+                {
+                    $db_filter->{Sql} .= " ".str_repeat( "(", $filter_expr->{terms}[$i]->{obr} )." ";
+                }
+                my $value = $filter_expr->{terms}[$i]->{val};
+                my @value_list;
+                if ( $filter_expr->{terms}[$i]->{attr} )
+                {
+                    if ( $filter_expr->{terms}[$i]->{attr} =~ /^Monitor/ )
+                    {
+                        my ( $temp_attr_name ) = $filter_expr->{terms}[$i]->{attr} =~ /^Monitor(.+)$/;
+                        $db_filter->{Sql} .= "M.".$temp_attr_name;
+                    }
+                    elsif ( $filter_expr->{terms}[$i]->{attr} eq 'DateTime' )
+                    {
+                        $db_filter->{Sql} .= "E.StartTime";
+                    }
+                    elsif ( $filter_expr->{terms}[$i]->{attr} eq 'Date' )
+                    {
+                        $db_filter->{Sql} .= "to_days( E.StartTime )";
+                    }
+                    elsif ( $filter_expr->{terms}[$i]->{attr} eq 'Time' )
+                    {
+                        $db_filter->{Sql} .= "extract( hour_second from E.StartTime )";
+                    }
+                    elsif ( $filter_expr->{terms}[$i]->{attr} eq 'Weekday' )
+                    {
+                        $db_filter->{Sql} .= "weekday( E.StartTime )";
+                    }
+                    elsif ( $filter_expr->{terms}[$i]->{attr} eq 'DiskPercent' )
+                    {
+                        $db_filter->{Sql} .= "zmDiskPercent";
+                        $db_filter->{HasDiskPercent} = !undef;
+                    }
+                    elsif ( $filter_expr->{terms}[$i]->{attr} eq 'DiskBlocks' )
+                    {
+                        $db_filter->{Sql} .= "zmDiskBlocks";
+                        $db_filter->{HasDiskBlocks} = !undef;
+                    }
+                    elsif ( $filter_expr->{terms}[$i]->{attr} eq 'SystemLoad' )
+                    {
+                        $db_filter->{Sql} .= "zmSystemLoad";
+                        $db_filter->{HasSystemLoad} = !undef;
+                    }
+                    else
+                    {
+                        $db_filter->{Sql} .= "E.".$filter_expr->{terms}[$i]->{attr};
+                    }
+
+                    ( my $stripped_value = $value ) =~ s/^["\']+?(.+)["\']+?$/$1/;
+                    foreach my $temp_value ( split( '/["\'\s]*?,["\'\s]*?/', $stripped_value ) )
+                    {
+                        if ( $filter_expr->{terms}[$i]->{attr} =~ /^Monitor/ )
+                        {
+                            $value = "'$temp_value'";
+                        }
+                        elsif ( $filter_expr->{terms}[$i]->{attr} eq 'Name' || $filter_expr->{terms}[$i]->{attr} eq 'Cause' || $filter_expr->{terms}[$i]->{attr} eq 'Notes' )
+                        {
+                            $value = "'$temp_value'";
+                        }
+                        elsif ( $filter_expr->{terms}[$i]->{attr} eq 'DateTime' )
+                        {
+                            $value = DateTimeToSQL( $temp_value );
+                            if ( !$value )
+                            {
+                                Error( "Error parsing date/time '$temp_value', skipping filter '$db_filter->{Name}'\n" );
+                                next FILTER;
+                            }
+                            $value = "'$value'";
+                        }
+                        elsif ( $filter_expr->{terms}[$i]->{attr} eq 'Date' )
+                        {
+                            $value = DateTimeToSQL( $temp_value );
+                            if ( !$value )
+                            {
+                                Error( "Error parsing date/time '$temp_value', skipping filter '$db_filter->{Name}'\n" );
+                                next FILTER;
+                            }
+                            $value = "to_days( '$value' )";
+                        }
+                        elsif ( $filter_expr->{terms}[$i]->{attr} eq 'Time' )
+                        {
+                            $value = DateTimeToSQL( $temp_value );
+                            if ( !$value )
+                            {
+                                Error( "Error parsing date/time '$temp_value', skipping filter '$db_filter->{Name}'\n" );
+                                next FILTER;
+                            }
+                            $value = "extract( hour_second from '$value' )";
+                        }
+                        else
+                        {
+                            $value = $temp_value;
+                        }
+                        push( @value_list, $value );
+                    }
+                }
+                if ( $filter_expr->{terms}[$i]->{op} )
+                {
+                    if ( $filter_expr->{terms}[$i]->{op} eq '=~' )
+                    {
+                        $db_filter->{Sql} .= " regexp $value";
+                    }
+                    elsif ( $filter_expr->{terms}[$i]->{op} eq '!~' )
+                    {
+                        $db_filter->{Sql} .= " not regexp $value";
+                    }
+                    elsif ( $filter_expr->{terms}[$i]->{op} eq '=[]' )
+                    {
+                        $db_filter->{Sql} .= " in (".join( ",", @value_list ).")";
+                    }
+                    elsif ( $filter_expr->{terms}[$i]->{op} eq '!~' )
+                    {
+                        $db_filter->{Sql} .= " not in (".join( ",", @value_list ).")";
+                    }
+                    else
+                    {
+                        $db_filter->{Sql} .= " ".$filter_expr->{terms}[$i]->{op}." $value";
+                    }
+                }
+                if ( exists($filter_expr->{terms}[$i]->{cbr}) )
+                {
+                    $db_filter->{Sql} .= " ".str_repeat( ")", $filter_expr->{terms}[$i]->{cbr} )." ";
+                }
+            }
+        }
+        if ( $db_filter->{Sql} )
+        {
+            $sql .= " and ( ".$db_filter->{Sql}." )";
+        }
+        my @auto_terms;
+        if ( $db_filter->{AutoArchive} )
+        {
+            push( @auto_terms, "E.Archived = 0" )
+        }
+        if ( $db_filter->{AutoVideo} )
+        {
+            push( @auto_terms, "E.Videoed = 0" )
+        }
+        if ( $db_filter->{AutoUpload} )
+        {
+            push( @auto_terms, "E.Uploaded = 0" )
+        }
+        if ( $db_filter->{AutoEmail} )
+        {
+            push( @auto_terms, "E.Emailed = 0" )
+        }
+        if ( $db_filter->{AutoMessage} )
+        {
+            push( @auto_terms, "E.Messaged = 0" )
+        }
+        if ( $db_filter->{AutoExecute} )
+        {
+            push( @auto_terms, "E.Executed = 0" )
+        }
+        if ( @auto_terms )
+        {
+            $sql .= " and ( ".join( " or ", @auto_terms )." )";
+        }
+        if ( !$filter_expr->{sort_field} )
+        {
+            $filter_expr->{sort_field} = 'StartTime';
+            $filter_expr->{sort_asc} = 0;
+        }
+        my $sort_column = '';
+        if ( $filter_expr->{sort_field} eq 'Id' )
+        {
+            $sort_column = "E.Id"; 
+        }
+        elsif ( $filter_expr->{sort_field} eq 'MonitorName' )
+        {
+            $sort_column = "M.Name";
+        }
+        elsif ( $filter_expr->{sort_field} eq 'Name' )
+        {
+            $sort_column = "E.Name";
+        }
+        elsif ( $filter_expr->{sort_field} eq 'StartTime' )
+        {
+            $sort_column = "E.StartTime";
+        }
+        elsif ( $filter_expr->{sort_field} eq 'Secs' )
+        {
+            $sort_column = "E.Length";
+        }
+        elsif ( $filter_expr->{sort_field} eq 'Frames' )
+        {
+            $sort_column = "E.Frames";
+        }
+        elsif ( $filter_expr->{sort_field} eq 'AlarmFrames' )
+        {
+            $sort_column = "E.AlarmFrames";
+        }
+        elsif ( $filter_expr->{sort_field} eq 'TotScore' )
+        {
+            $sort_column = "E.TotScore";
+        }
+        elsif ( $filter_expr->{sort_field} eq 'AvgScore' )
+        {
+            $sort_column = "E.AvgScore";
+        }
+        elsif ( $filter_expr->{sort_field} eq 'MaxScore' )
+        {
+            $sort_column = "E.MaxScore";
+        }
+        else
+        {
+            $sort_column = "E.StartTime";
+        }
+        my $sort_order = $filter_expr->{sort_asc}?"asc":"desc";
+        $sql .= " order by ".$sort_column." ".$sort_order;
+        if ( $filter_expr->{limit} )
+        {
+            $sql .= " limit 0,".$filter_expr->{limit};
+        }
+        Debug( "SQL:$sql\n" );
+        $db_filter->{Sql} = $sql;
+        if ( $db_filter->{AutoExecute} )
+        {
+            my $script = $db_filter->{AutoExecuteCmd};
+            $script =~ s/\s.*$//;
+            if ( !-e $script )
+            {
+                Error( "Auto execute script '$script' not found, skipping filter '$db_filter->{Name}'\n" );
+                next FILTER;
+
+            }
+            elsif ( !-x $script )
+            {
+                Error( "Auto execute script '$script' not executable, skipping filter '$db_filter->{Name}'\n" );
+                next FILTER;
+            }
+        }
+        push( @filters, $db_filter );
+    }
+    $sth->finish();
+
+    return( \@filters );
+}
+
+sub checkFilter
+{
+    my $filter = shift;
+
+    Debug( "Checking filter '$filter->{Name}'".
+        ($filter->{AutoDelete}?", delete":"").
+        ($filter->{AutoArchive}?", archive":"").
+        ($filter->{AutoVideo}?", video":"").
+        ($filter->{AutoUpload}?", upload":"").
+        ($filter->{AutoEmail}?", email":"").
+        ($filter->{AutoMessage}?", message":"").
+        ($filter->{AutoExecute}?", execute":"").
+        "\n"
+    );
+    my $sql = $filter->{Sql};
+    
+    if ( $filter->{HasDiskPercent} )
+    {
+        my $disk_percent = getDiskPercent();
+        $sql =~ s/zmDiskPercent/$disk_percent/g;
+    }
+    if ( $filter->{HasDiskBlocks} )
+    {
+        my $disk_blocks = getDiskBlocks();
+        $sql =~ s/zmDiskBlocks/$disk_blocks/g;
+    }
+    if ( $filter->{HasSystemLoad} )
+    {
+        my $load = getLoad();
+        $sql =~ s/zmSystemLoad/$load/g;
+    }
+
+    my $sth = $dbh->prepare_cached( $sql ) or Fatal( "Can't prepare '$sql': ".$dbh->errstr() );
+    my $res = $sth->execute();
+    if ( !$res )
+    {
+        Error( "Can't execute filter '$sql', ignoring: ".$sth->errstr() );
+        return;
+    }
+
+    while( my $event = $sth->fetchrow_hashref() )
+    {
+        Debug( "Checking event $event->{Id}\n" );
+        my $delete_ok = !undef;
+        if ( $filter->{AutoArchive} )
+        {
+            Info( "Archiving event $event->{Id}\n" );
+            # Do it individually to avoid locking up the table for new events
+            my $sql = "update Events set Archived = 1 where Id = ?";
+            my $sth = $dbh->prepare_cached( $sql ) or Fatal( "Can't prepare '$sql': ".$dbh->errstr() );
+            my $res = $sth->execute( $event->{Id} ) or Fatal( "Can't execute '$sql': ".$sth->errstr() );
+        }
+        if ( ZM_OPT_FFMPEG && $filter->{AutoVideo} )
+        {
+            if ( !$event->{Videoed} )
+            {
+                $delete_ok = undef if ( !generateVideo( $filter, $event ) );
+            }
+        }
+        if ( ZM_OPT_EMAIL && $filter->{AutoEmail} )
+        {
+            if ( !$event->{Emailed} )
+            {
+                $delete_ok = undef if ( !sendEmail( $filter, $event ) );
+            }
+        }
+        if ( ZM_OPT_MESSAGE && $filter->{AutoMessage} )
+        {
+            if ( !$event->{Messaged} )
+            {
+                $delete_ok = undef if ( !sendMessage( $filter, $event ) );
+            }
+        }
+        if ( ZM_OPT_UPLOAD && $filter->{AutoUpload} )
+        {
+            if ( !$event->{Uploaded} )
+            {
+                $delete_ok = undef if ( !uploadArchFile( $filter, $event ) );
+            }
+        }
+        if ( $filter->{AutoExecute} )
+        {
+            if ( !$event->{Execute} )
+            {
+                $delete_ok = undef if ( !executeCommand( $filter, $event ) );
+            }
+        }
+        if ( $filter->{AutoDelete} )
+        {
+            if ( $delete_ok )
+            {
+                Info( "Deleting event $event->{Id}\n" );
+                # Do it individually to avoid locking up the table for new events
+                my $sql = "delete from Events where Id = ?";
+                my $sth = $dbh->prepare_cached( $sql ) or Fatal( "Can't prepare '$sql': ".$dbh->errstr() );
+                my $res = $sth->execute( $event->{Id} ) or Fatal( "Can't execute '$sql': ".$sth->errstr() );
+
+                if ( !ZM_OPT_FAST_DELETE )
+                {
+                    my $sql = "delete from Frames where EventId = ?";
+                    my $sth = $dbh->prepare_cached( $sql ) or Fatal( "Can't prepare '$sql': ".$dbh->errstr() );
+                    my $res = $sth->execute( $event->{Id} ) or Fatal( "Can't execute '$sql': ".$sth->errstr() );
+
+                    $sql = "delete from Stats where EventId = ?";
+                    $sth = $dbh->prepare_cached( $sql ) or Fatal( "Can't prepare '$sql': ".$dbh->errstr() );
+                    $res = $sth->execute( $event->{Id} ) or Fatal( "Can't execute '$sql': ".$sth->errstr() );
+
+                    deleteEventFiles( $event->{Id}, $event->{MonitorId} );
+                }
+            }
+            else
+            {
+                Error( "Unable to delete event $event->{Id} as previous operations failed\n" );
+            }
+        }
+    }
+    $sth->finish();
+}
+
+sub generateVideo
+{
+    my $filter = shift;
+    my $event = shift;
+    my $phone = shift;
+
+    my $rate = $event->{DefaultRate}/100;
+    my $scale = $event->{DefaultScale}/100;
+    my $format;
+
+    my @ffmpeg_formats = split( /\s+/, ZM_FFMPEG_FORMATS );
+    my $default_video_format;
+    my $default_phone_format;
+    foreach my $ffmpeg_format( @ffmpeg_formats )
+    {
+        if ( $ffmpeg_format =~ /^(.+)\*\*$/ )
+        {
+            $default_phone_format = $1;
+        }
+        elsif ( $ffmpeg_format =~ /^(.+)\*$/ )
+        {
+            $default_video_format = $1;
+        }
+    }
+
+    if ( $phone && $default_phone_format )
+    {
+        $format = $default_phone_format;
+    }
+    elsif ( $default_video_format )
+    {
+        $format = $default_video_format;
+    }
+    else
+    {
+        $format = $ffmpeg_formats[0];
+    }
+
+    my $command = ZM_PATH_BIN."/zmvideo.pl -e ".$event->{Id}." -r ".$rate." -s ".$scale." -f ".$format;
+    my $output = qx($command);
+    chomp( $output );
+    my $status = $? >> 8;
+    if ( $status || DBG_LEVEL > 0 )
+    {
+        Debug( "Output: $output\n" );
+    }
+    if ( $status )
+    {
+        Error( "Video generation '$command' failed with status: $status\n" );
+        if ( wantarray() )
+        {
+            return( undef, undef );
+        }
+        return( 0 );
+    }
+    else
+    {
+        my $sql = "update Events set Videoed = 1 where Id = ?";
+        my $sth = $dbh->prepare_cached( $sql ) or Fatal( "Can't prepare '$sql': ".$dbh->errstr() );
+        my $res = $sth->execute( $event->{Id} ) or Fatal( "Can't execute '$sql': ".$sth->errstr() );
+        if ( wantarray() )
+        {
+            return( $format, sprintf( "%s/%s", getEventPath( $event ), $output ) ); 
+        }
+    }
+    return( 1 );
+}
+
+sub uploadArchFile
+{
+    my $filter = shift;
+	my $event = shift;
+	if ( !ZM_UPLOAD_FTP_HOST )
+    {
+        Error( "Cannot upload archive as no FTP host defined" );
+        return( 0 );
+    } 
+
+    my $arch_file = ZM_UPLOAD_FTP_LOC_DIR.'/'.$event->{MonitorName}.'-'.$event->{Id};
+	my $arch_image_path = getEventPath( $event )."/".((ZM_UPLOAD_ARCH_ANALYSE)?'{*analyse,*capture}':'*capture').".jpg";
+	my @arch_image_files =  glob($arch_image_path);
+
+	my $arch_error;
+    if ( ZM_UPLOAD_ARCH_FORMAT eq "zip" )
+    {
+        $arch_file .= '.zip';
+        my $zip = Archive::Zip->new();
+		Info( "Creating upload file '$arch_file', ".int(@arch_image_files)." files\n" );
+
+        my $status = &AZ_OK;
+		foreach my $image_file ( @arch_image_files )
+        {
+            Info( "Adding $image_file\n" );
+            my $member = $zip->addFile( $image_file );
+            last unless ( $member );
+            $member->desiredCompressionMethod( (ZM_UPLOAD_ARCH_COMPRESS)?&COMPRESSION_DEFLATED:&COMPRESSION_STORED );
+        }
+        $status = $zip->writeToFileNamed( $arch_file );
+
+        if ( $arch_error = ($status != &AZ_OK) )
+        {
+            Error( "Zip error: $status\n " );
+        }
+    }
+    elsif ( ZM_UPLOAD_ARCH_FORMAT eq "tar" )
+    {
+        if ( ZM_UPLOAD_ARCH_COMPRESS )
+        {
+            $arch_file .= '.tar.gz';
+        }
+        else
+        {
+            $arch_file .= '.tar';
+        }
+		Info( "Creating upload file '$arch_file', ".int(@arch_image_files)." files\n" );
+
+		if ( $arch_error = !Archive::Tar->create_archive( $arch_file, ZM_UPLOAD_ARCH_COMPRESS, @arch_image_files ) )
+        {
+            Error( "Tar error: ".Archive::Tar->error()."\n " );
+        }
+    }
+
+    if ( $arch_error )
+    {
+        return( 0 );
+    }
+    else
+    {
+        Info( "Uploading to ".ZM_UPLOAD_FTP_HOST."\n" );
+        my $ftp = Net::FTP->new( ZM_UPLOAD_FTP_HOST, Timeout=>ZM_UPLOAD_FTP_TIMEOUT, Passive=>ZM_UPLOAD_FTP_PASSIVE, Debug=>ZM_UPLOAD_FTP_DEBUG );
+        if ( !$ftp )
+        {
+            warn( "Can't create ftp connection: $@" );
+            return( 0 );
+        }
+
+        $ftp->login( ZM_UPLOAD_FTP_USER, ZM_UPLOAD_FTP_PASS ) or warn( "FTP - Can't login" );
+        $ftp->binary() or warn( "FTP - Can't go binary" );
+        $ftp->cwd( ZM_UPLOAD_FTP_REM_DIR ) or warn( "FTP - Can't cwd" );
+        $ftp->put( $arch_file ) or warn( "FTP - Can't upload '$arch_file'" );
+        $ftp->quit() or warn( "FTP - Can't quit" );
+        unlink( $arch_file );
+        my $sql = "update Events set Uploaded = 1 where Id = ?";
+        my $sth = $dbh->prepare_cached( $sql ) or Fatal( "Can't prepare '$sql': ".$dbh->errstr() );
+        my $res = $sth->execute( $event->{Id} ) or Fatal( "Can't execute '$sql': ".$sth->errstr() );
+    }
+    return( 1 );
+}
+
+sub substituteTags
+{
+    my $text = shift;
+    my $filter = shift;
+    my $event = shift;
+    my $attachments_ref = shift;
+
+    # First we'd better check what we need to get
+    # We have a filter and an event, do we need any more
+    # monitor information?
+    my $need_monitor = $text =~ /%(?:MET|MEH|MED|MEW|MEN|MEA)%/;
+
+    my $monitor = {};
+    if ( $need_monitor )
+    {
+        my $db_now = strftime( "%Y-%m-%d %H:%M:%S", localtime() );
+        my $sql = "select M.Id, count(E.Id) as EventCount, count(if(E.Archived,1,NULL)) as ArchEventCount, count(if(E.StartTime>'$db_now' - INTERVAL 1 HOUR && E.Archived = 0,1,NULL)) as HourEventCount, count(if(E.StartTime>'$db_now' - INTERVAL 1 DAY && E.Archived = 0,1,NULL)) as DayEventCount, count(if(E.StartTime>'$db_now' - INTERVAL 7 DAY && E.Archived = 0,1,NULL)) as WeekEventCount, count(if(E.StartTime>'$db_now' - INTERVAL 1 MONTH && E.Archived = 0,1,NULL)) as MonthEventCount from Monitors as M left join Events as E on E.MonitorId = M.Id where MonitorId = ? group by E.MonitorId order by Id";
+        my $sth = $dbh->prepare_cached( $sql ) or Fatal( "Can't prepare '$sql': ".$dbh->errstr() );
+        my $res = $sth->execute( $event->{MonitorId} ) or Fatal( "Can't execute '$sql': ".$sth->errstr() );
+        $monitor = $sth->fetchrow_hashref();
+        $sth->finish();
+        return() if ( !$monitor );
+    }
+
+    # Do we need the image information too?
+    my $need_images = $text =~ /%(?:EPI1|EPIM|EI1|EIM)%/;
+    my $first_alarm_frame;
+    my $max_alarm_frame;
+    my $max_alarm_score = 0;
+    if ( $need_images )
+    {
+        my $sql = "select * from Frames where EventId = ? and Type = 'Alarm' order by FrameId";
+        my $sth = $dbh->prepare_cached( $sql ) or Fatal( "Can't prepare '$sql': ".$dbh->errstr() );
+        my $res = $sth->execute( $event->{Id} ) or Fatal( "Can't execute '$sql': ".$sth->errstr() );
+        while( my $frame = $sth->fetchrow_hashref() )
+        {
+            if ( !$first_alarm_frame )
+            {
+                $first_alarm_frame = $frame;
+            }
+            if ( $frame->{Score} > $max_alarm_score )
+            {
+                $max_alarm_frame = $frame;
+                $max_alarm_score = $frame->{Score};
+            }
+        }
+        $sth->finish();
+    }
+
+    my $url = ZM_URL;
+    $text =~ s/%ZP%/$url/g;
+    $text =~ s/%MN%/$event->{MonitorName}/g;
+    $text =~ s/%MET%/$monitor->{EventCount}/g;
+    $text =~ s/%MEH%/$monitor->{HourEventCount}/g;
+    $text =~ s/%MED%/$monitor->{DayEventCount}/g;
+    $text =~ s/%MEW%/$monitor->{WeekEventCount}/g;
+    $text =~ s/%MEM%/$monitor->{MonthEventCount}/g;
+    $text =~ s/%MEA%/$monitor->{ArchEventCount}/g;
+    $text =~ s/%MP%/$url?view=watch&mid=$event->{MonitorId}/g;
+    $text =~ s/%MPS%/$url?view=watchfeed&mid=$event->{MonitorId}&mode=stream/g;
+    $text =~ s/%MPI%/$url?view=watchfeed&mid=$event->{MonitorId}&mode=still/g;
+    $text =~ s/%EP%/$url?view=event&mid=$event->{MonitorId}&eid=$event->{Id}/g;
+    $text =~ s/%EPS%/$url?view=event&mode=stream&mid=$event->{MonitorId}&eid=$event->{Id}/g;
+    $text =~ s/%EPI%/$url?view=event&mode=still&mid=$event->{MonitorId}&eid=$event->{Id}/g;
+    $text =~ s/%EI%/$event->{Id}/g;
+    $text =~ s/%EN%/$event->{Name}/g;
+    $text =~ s/%EC%/$event->{Cause}/g;
+    $text =~ s/%ED%/$event->{Notes}/g;
+    $text =~ s/%ET%/$event->{StartTime}/g;
+    $text =~ s/%EL%/$event->{Length}/g;
+    $text =~ s/%EF%/$event->{Frames}/g;
+    $text =~ s/%EFA%/$event->{AlarmFrames}/g;
+    $text =~ s/%EST%/$event->{TotScore}/g;
+    $text =~ s/%ESA%/$event->{AvgScore}/g;
+    $text =~ s/%ESM%/$event->{MaxScore}/g;
+    if ( $first_alarm_frame )
+    {
+        $text =~ s/%EPI1%/$url?view=frame&mid=$event->{MonitorId}&eid=$event->{Id}&fid=$first_alarm_frame->{FrameId}/g;
+        $text =~ s/%EPIM%/$url?view=frame&mid=$event->{MonitorId}&eid=$event->{Id}&fid=$max_alarm_frame->{FrameId}/g;
+        if ( $attachments_ref && $text =~ s/%EI1%//g )
+        {
+            push( @$attachments_ref, { type=>"image/jpeg", path=>sprintf( "%s/%0".ZM_EVENT_IMAGE_DIGITS."d-capture.jpg", getEventPath( $event ), $first_alarm_frame->{FrameId} ) } );
+        }
+        if ( $attachments_ref && $text =~ s/%EIM%//g )
+        {
+            # Don't attach the same image twice
+            if ( !@$attachments_ref || ($first_alarm_frame->{FrameId} != $max_alarm_frame->{FrameId} ) )
+            {
+                push( @$attachments_ref, { type=>"image/jpeg", path=>sprintf( "%s/%0".ZM_EVENT_IMAGE_DIGITS."d-capture.jpg", getEventPath( $event ), $max_alarm_frame->{FrameId} ) } );
+            }
+        }
+    }
+    if ( $attachments_ref && ZM_OPT_FFMPEG )
+    {
+        if ( $text =~ s/%EV%//g )
+        {
+            my ( $format, $path ) = generateVideo( $filter, $event );
+            if ( !$format )
+            {
+                return( undef );
+            }
+            push( @$attachments_ref, { type=>"video/$format", path=>$path } );
+        }
+        if ( $text =~ s/%EVM%//g )
+        {
+            my ( $format, $path ) = generateVideo( $filter, $event, 1 );
+            if ( !$format )
+            {
+                return( undef );
+            }
+            push( @$attachments_ref, { type=>"video/$format", path=>$path } );
+        }
+    }
+    $text =~ s/%FN%/$filter->{Name}/g;
+    ( my $filter_name = $filter->{Name} ) =~ s/ /+/g;
+    $text =~ s/%FP%/$url?view=filter&mid=$event->{MonitorId}&filter_name=$filter_name/g;
+    
+    return( $text );
+}
+
+sub sendEmail
+{
+    my $filter = shift;
+    my $event = shift;
+
+    if ( !ZM_FROM_EMAIL )
+    {
+        warn( "No 'from' email address defined, not sending email" );
+        return( 0 );
+    }
+    if ( !ZM_EMAIL_ADDRESS )
+    {
+        warn( "No email address defined, not sending email" );
+        return( 0 );
+    }
+
+    Info( "Creating notification email\n" );
+
+    my $subject = substituteTags( ZM_EMAIL_SUBJECT, $filter, $event );
+    return( 0 ) if ( !$subject );
+    my @attachments;
+    my $body = substituteTags( ZM_EMAIL_BODY, $filter, $event, \@attachments );
+    return( 0 ) if ( !$body );
+
+    Info( "Sending notification email '$subject'\n" );
+
+    eval
+    {
+        if ( ZM_NEW_MAIL_MODULES )
+        {
+            ### Create the multipart container
+            my $mail = MIME::Lite->new (
+                From => ZM_FROM_EMAIL,
+                To => ZM_EMAIL_ADDRESS,
+                Subject => $subject,
+                Type => "multipart/mixed"
+            );
+            ### Add the text message part
+            $mail->attach (
+                Type => "TEXT",
+                Data => $body
+            );
+            ### Add the attachments
+            foreach my $attachment ( @attachments )
+            {
+                Info( "Attaching '$attachment->{path}\n" );
+                $mail->attach(
+                    Path => $attachment->{path},
+                    Type => $attachment->{type},
+                    Disposition => "attachment"
+                );
+            }
+            ### Send the Message
+            MIME::Lite->send( "smtp", ZM_EMAIL_HOST, Timeout=>60 );
+            $mail->send();
+        } 
+		else
+		 {
+			 my $from_email = substituteTags( ZM_FROM_EMAIL );
+			 my $email_address = substituteTags( ZM_EMAIL_ADDRESS );
+			 my @attachpaths ;
+			 foreach my $attachment ( @attachments )
+			 {
+				push(@attachpaths, $attachment->{path} );
+			 }
+			 my $attachstring ;
+			 if ( @attachpaths )
+			 {
+				$attachstring = join(" -a "," ", @attachpaths);
+			 }
+			 Info( "Executing /usr/bin/email -s \" $subject\" $attachstring -f $from_email $email_address \n" ); 
+			 my $mail = `/usr/bin/email -s \"$subject\" $attachstring -f $from_email $email_address << EOF $body	`;
+		 }
+    };
+    if ( $@ )
+    {
+        warn( "Can't send email: $@" );
+        return( 0 );
+    }
+    else
+    {
+        Info( "Notification email sent\n" );
+    }
+    my $sql = "update Events set Emailed = 1 where Id = ?";
+    my $sth = $dbh->prepare_cached( $sql ) or Fatal( "Can't prepare '$sql': ".$dbh->errstr() );
+    my $res = $sth->execute( $event->{Id} ) or Fatal( "Can't execute '$sql': ".$sth->errstr() );
+
+    return( 1 );
+}
+
+sub sendMessage
+{
+    my $filter = shift;
+    my $event = shift;
+
+    if ( !ZM_FROM_EMAIL )
+    {
+        warn( "No 'from' email address defined, not sending message" );
+        return( 0 );
+    }
+    if ( !ZM_MESSAGE_ADDRESS )
+    {
+        warn( "No message address defined, not sending message" );
+        return( 0 );
+    }
+
+    Info( "Creating notification message\n" );
+
+    my $subject = substituteTags( ZM_MESSAGE_SUBJECT, $filter, $event );
+    return( 0 ) if ( !$subject );
+    my @attachments;
+    my $body = substituteTags( ZM_MESSAGE_BODY, $filter, $event, \@attachments );
+    return( 0 ) if ( !$body );
+
+    Info( "Sending notification message '$subject'\n" );
+
+    eval
+    {
+        if ( ZM_NEW_MAIL_MODULES )
+        {
+            ### Create the multipart container
+            my $mail = MIME::Lite->new (
+                From => ZM_FROM_EMAIL,
+                To => ZM_MESSAGE_ADDRESS,
+                Subject => $subject,
+                Type => "multipart/mixed"
+            );
+            ### Add the text message part
+            $mail->attach (
+                Type => "TEXT",
+                Data => $body
+            );
+            ### Add the attachments
+            foreach my $attachment ( @attachments )
+            {
+                Info( "Attaching '$attachment->{path}\n" );
+                $mail->attach(
+                    Path => $attachment->{path},
+                    Type => $attachment->{type},
+                    Disposition => "attachment"
+                );
+            }
+            ### Send the Message
+            MIME::Lite->send( "smtp", ZM_EMAIL_HOST, Timeout=>60 );
+            $mail->send();
+		}
+	   else
+		 {
+			 my $from_email = substituteTags( ZM_FROM_EMAIL );
+			 my $email_address = substituteTags( ZM_EMAIL_ADDRESS );
+			 my @attachpaths ;
+			 foreach my $attachment ( @attachments )
+			 {
+				push(@attachpaths, $attachment->{path} );
+			 }
+			 my $attachstring ;
+			 if ( @attachpaths )
+			 {
+				$attachstring = join(" -a "," ", @attachpaths);
+			 }
+			 Info( "Executing /usr/bin/email -s \" $subject\" $attachstring -f $from_email $email_address \n" ); 
+			 my $mail = `/usr/bin/email -s \"$subject\" $attachstring -f $from_email $email_address << EOF $body	`;
+		 }	
+    };
+    if ( $@ )
+    {
+        warn( "Can't send email: $@" );
+        return( 0 );
+    }
+    else
+    {
+        Info( "Notification message sent\n" );
+    }
+    my $sql = "update Events set Messaged = 1 where Id = ?";
+    my $sth = $dbh->prepare_cached( $sql ) or Fatal( "Can't prepare '$sql': ".$dbh->errstr() );
+    my $res = $sth->execute( $event->{Id} ) or Fatal( "Can't execute '$sql': ".$sth->errstr() );
+
+    return( 1 );
+}
+
+sub executeCommand
+{
+    my $filter = shift;
+    my $event = shift;
+
+    my $event_path = getEventPath( $event );
+
+    my $command = $filter->{AutoExecuteCmd};
+    $command .= " $event_path";
+
+    Info( "Executing '$command'\n" );
+    my $output = qx($command);
+    my $status = $? >> 8;
+    if ( $status || DBG_LEVEL > 0 )
+    {
+        chomp( $output );
+        Debug( "Output: $output\n" );
+    }
+    if ( $status )
+    {
+        Error( "Command '$command' exited with status: $status\n" );
+        return( 0 );
+    }
+    else
+    {
+        my $sql = "update Events set Executed = 1 where Id = ?";
+        my $sth = $dbh->prepare_cached( $sql ) or Fatal( "Can't prepare '$sql': ".$dbh->errstr() );
+        my $res = $sth->execute( $event->{Id} ) or Fatal( "Can't execute '$sql': ".$sth->errstr() );
+    }
+    return( 1 );
+}
+
diff --git a/abs/core/zoneminder/zminit.arch b/abs/core/zoneminder/zminit.arch
old mode 100644
new mode 100755
diff --git a/abs/core/zoneminder/zmupdate.patch b/abs/core/zoneminder/zmupdate.patch
deleted file mode 100644
index 913a6ec..0000000
--- a/abs/core/zoneminder/zmupdate.patch
+++ /dev/null
@@ -1,23 +0,0 @@
---- ZoneMinder-1.23.3/scripts/zmupdate.pl.orig	2007-09-26 17:05:19.000000000 -0700
-+++ ZoneMinder-1.23.3/scripts/zmupdate.pl	2007-09-26 17:10:55.000000000 -0700
-@@ -327,7 +327,7 @@
- 				$command .= " -p".$db_pass;
- 			}
- 		}
--		$command .= " ".ZM_DB_NAME." < ".ZM_PATH_BUILD."/db/zm_update-".$version.".sql";
-+		$command .= " ".ZM_DB_NAME." < ".ZM_PATH_UPDATE."/zm_update-".$version.".sql";
- 
- 		print( "Executing '$command'\n" ) if ( DBG_LEVEL > 0 );
- 		my $output = qx($command);
-diff -Naru ZoneMinder-1.23.3-orig/scripts/zmlogrotate.conf.in ZoneMinder-1.23.3/scripts/zmlogrotate.conf.in
---- ZoneMinder-1.23.3-orig/scripts/zmlogrotate.conf.in	2008-02-25 20:19:52.000000000 +1030
-+++ ZoneMinder-1.23.3/scripts/zmlogrotate.conf.in	2009-07-20 20:18:16.000000000 +0930
-@@ -7,7 +7,7 @@
-     missingok
- }
- 
--Now the weekly db backup
-+# Now the weekly db backup
- 
- /var/lib/zm/zm_backup.sql {
- weekly
diff --git a/abs/core/zoneminder/zoneminder.install b/abs/core/zoneminder/zoneminder.install
old mode 100644
new mode 100755
index 1f3cfc0..250749f
--- a/abs/core/zoneminder/zoneminder.install
+++ b/abs/core/zoneminder/zoneminder.install
@@ -1,69 +1,55 @@
 # zoneminder.install
 
 ## arg 1:  the new package version
-pre_install() {
-   echo
-}
-
-## arg 1:  the new package version
 post_install() {
-chown http.http /data/srv/httpd/htdocs/zm/events
-chown http.http /data/srv/httpd/htdocs/zm/images
-chown http.http /data/srv/httpd/htdocs/zm/temp
-chown http.http /etc/zm.conf
-
-cat << EOF
+  ln -s /usr/share/cambozola/cambozola.jar /srv/zoneminder/www/
+  chown -R http.http /srv/zoneminder
+  chown http.http /etc/zm.conf
+  cat << EOF
 Note:
-==> mythtv has been defined in /etc/zm.conf as user and password for
-==> The zoneminder (zm) database
 ==> To initialize the ZoneMinder database run (as root)
 ==> /usr/lib/zm/bin/zminit
-
 EOF
 
-cat /etc/sysctl.conf |grep "kernel.shmall" >/dev/null || cat << EOF
-==> To raise the limit on shared memory for zoneminder
-==> add these lines to /etc/sysctl.conf
-==> kernel.shmall = 134217728
-==> kernel.shmmax = 134217728
+cat  << EOF
+==> Check /etc/php/php.ini and make sure these are uncommented
+==> extension=gd.so
+==> extension=gettext.so
+==> extension=mcrypt.so
+==> extension=mysql.so
+==> extension=mysqli.so
+==> extension=session.so
+==> extension=sockets.so
+EOF
+cat << EOF
+==> Check /etc/php/php.ini and make sure short_open_tag = On
 EOF
 
 
-[ -d /var/lib/zm ] || mkdir /var/lib/zm/
-touch /var/lib/zm/zm_backup.sql
-
-# Reuse the old config
-[ -f /etc/zm.conf.pacnew ] && cat /etc/zm.conf | sed -e "s/^ZM_VERSION=.*$/ZM_VERSION=1.23.3/" > /tmp/zm.conf
-[ -f /etc/zm.conf.pacsave ] &&  cat /etc/zm.conf.pacsave | sed -e "s/^ZM_VERSION=.*$/ZM_VERSION=1.23.3/" > /tmp/zm.conf
-[ -f /tmp/zm.conf ] && mv -f /tmp/zm.conf /etc/zm.conf && chown -R nobody.nobody /etc/zm.conf
+cat /etc/php/php.ini |grep "^open_basedir.*/etc/" | \
+grep "/var/lib/zm/www">/dev/null ||  cat << EOF
+==> You must edit /etc/php/php.ini and add to open_basedir "/etc/" and
+==> "/var/lib/zm/" like so
+==> open_basedir = /home/:/tmp/:/usr/share/pear/:/etc/:/var/lib/zm/
+==> Otherwise ZoneMinder will be unable to read /etc/zm.conf
+==> or display its own web directory
+EOF
 
+cat << EOF
+Note:
+==> You must edit /etc/httpd/conf/httpd.conf and uncomment/add the line
+==> LoadModule php5_module modules/libphp5.so
+==> You must also add these lines:
+==> Include conf/extra/php5_module.conf
+==> Include /etc/httpd/conf/extra/httpd-zm.conf
+EOF
+touch /var/lib/zm/zm_backup.sql
 }
 
-## arg 1:  the new package version
-## arg 2:  the old package version
-pre_upgrade() {
-  echo
-}
 
 ## arg 1:  the new package version
 ## arg 2:  the old package version
 post_upgrade() {
-
-  # Reuse the old config
-[ -f /etc/zm.conf.pacnew ] && cat /etc/zm.conf | sed -e "s/^ZM_VERSION=.*$/ZM_VERSION=1.23.3/" > /tmp/zm.conf
-[ -f /etc/zm.conf.pacsave ] &&  cat /etc/zm.conf.pacsave | sed -e "s/^ZM_VERSION=.*$/ZM_VERSION=1.23.3/" > /tmp/zm.conf
-[ -f /tmp/zm.conf ] && mv -f /tmp/zm.conf /etc/zm.conf && chown -R http.http /etc/zm.conf
-add_service.sh zm
-}
-## arg 1:  the old package version
-pre_remove() {
-  echo
+/usr/lib/zm/bin/zmupdate.pl -f >/dev/null
 }
-
-## arg 1:  the old package version
-post_remove() {
-  echo
-  remove_service.sh zm
-}
-
 # vim:set ts=2 sw=2 et:
-- 
cgit v0.12


From 05bf1ffe6a564d12266613616133517e9e9e972f Mon Sep 17 00:00:00 2001
From: Britney Fransen <brfransen@gmail.com>
Date: Tue, 20 Sep 2011 17:37:18 -0500
Subject: cambozola: Initial inclusion. Dep of zoneminder. refs #770

---
 abs/extra/cambozola/PKGBUILD | 26 ++++++++++++++++++++++++++
 1 file changed, 26 insertions(+)
 create mode 100644 abs/extra/cambozola/PKGBUILD

diff --git a/abs/extra/cambozola/PKGBUILD b/abs/extra/cambozola/PKGBUILD
new file mode 100644
index 0000000..27664f1
--- /dev/null
+++ b/abs/extra/cambozola/PKGBUILD
@@ -0,0 +1,26 @@
+# Maintainer: Ernie Brodeur <ebrodeur@ujami.net>
+pkgname=cambozola
+pkgver=0.92
+pkgrel=1
+pkgdesc="A java servlet for streaming JPEG's from ip Cameras."
+url="http://www.charliemouse.com:8080/code/cambozola/"
+arch=('x86_64' 'i686')
+license=('GPL')
+depends=('java-runtime')
+makedepends=('apache-ant')
+source=("${url}${pkgname}-${pkgver}.tar.gz")
+md5sums=('602daba851e726e2399445fda3ca718f')
+
+build() {
+  cd "${srcdir}/${pkgname}-${pkgver}"
+  ant
+}
+
+package() {
+  cd "${srcdir}/${pkgname}-${pkgver}"
+  mkdir -p ${pkgdir}/usr/share/${pkgname}
+  cp dist/* ${pkgdir}/usr/share/${pkgname}/
+}
+
+# vim:set ts=2 sw=2 et:
+
-- 
cgit v0.12


From ad5be4387035eec47c68c03169c82a5fa780d0c4 Mon Sep 17 00:00:00 2001
From: Britney Fransen <brfransen@gmail.com>
Date: Tue, 20 Sep 2011 18:42:12 -0500
Subject: zoneminder: update for runit. refs #770 closes #751

---
 abs/core/zoneminder/PKGBUILD | 28 ++++++++++++++++------------
 abs/core/zoneminder/run      | 19 +++++++++++++++++--
 2 files changed, 33 insertions(+), 14 deletions(-)

diff --git a/abs/core/zoneminder/PKGBUILD b/abs/core/zoneminder/PKGBUILD
index f9d6f8f..00ac2c6 100755
--- a/abs/core/zoneminder/PKGBUILD
+++ b/abs/core/zoneminder/PKGBUILD
@@ -19,17 +19,8 @@ customdb
 httpd-zm.conf 
 zmfilter.pl 
 zmeventbackup
-Makefile.patch)
-md5sums=('eaefa14befd482154970541252aa1a39'
-         'b20fb25b187eb6abb21321e153a7fb25'
-         '5033bc098bf497c8aed1fc1b3c9c5f9c'
-         'f9720872736f26d17bc49d8725b75ae4'
-         '4ace13d1e20934abe192ef7372c75988'
-         '00201eba9c0a5d1ed14b10cc55410698'
-         '80c52cc3575073a7462ff6a54886a345'
-         '8b40137b6ff54f2fb26104b70edd22e9'
-         'bb308c2393e947a224d56862c85a3ad9')
-
+Makefile.patch
+run)
 
 build() {
   cd "$srcdir/ZoneMinder-$pkgver"
@@ -69,6 +60,10 @@ build() {
 
   mkdir -p $startdir/pkg/var/run/zm
 
+  #install runit files
+  mkdir -p $pkgdir/etc/sv/zm
+  install -D -m 755 $srcdir/run $pkgdir/etc/sv/zm
+
   ### remove special files
   find $startdir/pkg/ -name "perllocal.pod" \
     -o -name ".packlist"                \
@@ -77,4 +72,13 @@ build() {
 
 }
 
-# vim:set ts=2 sw=2 et:
+md5sums=('eaefa14befd482154970541252aa1a39'
+         'b20fb25b187eb6abb21321e153a7fb25'
+         '5033bc098bf497c8aed1fc1b3c9c5f9c'
+         'f9720872736f26d17bc49d8725b75ae4'
+         '4ace13d1e20934abe192ef7372c75988'
+         '00201eba9c0a5d1ed14b10cc55410698'
+         '80c52cc3575073a7462ff6a54886a345'
+         '8b40137b6ff54f2fb26104b70edd22e9'
+         'bb308c2393e947a224d56862c85a3ad9'
+         '0c7024c355ce36828627bed10d965202')
diff --git a/abs/core/zoneminder/run b/abs/core/zoneminder/run
index e458bc8..ce61c24 100755
--- a/abs/core/zoneminder/run
+++ b/abs/core/zoneminder/run
@@ -2,5 +2,20 @@
 export TERM=linux
 . /etc/rc.conf
 . /etc/rc.d/functions
-stat_runit "Starting ZoneMinder"
-exec /etc/rc.d/zm start
+
+while true ; do
+    PID=`pidof -x zmdc.pl`
+    if test -n "$PID" ; then
+        sleep 60
+	continue
+    fi
+    stat_runit "Starting ZoneMinder"
+    /etc/rc.d/zm start
+    if test $? -ne 0 ; then
+        stat_fail
+    else
+        add_daemon zm
+        stat_done
+    fi
+    sleep 30
+done
-- 
cgit v0.12


From 848229e1de18d7bb2893e6cd78f71f315935685c Mon Sep 17 00:00:00 2001
From: Britney Fransen <brfransen@gmail.com>
Date: Wed, 21 Sep 2011 10:17:04 -0500
Subject: linhes-theme: add theme files to git

---
 abs/core/linhes-theme/LinHES/README                |  32 ++
 abs/core/linhes-theme/LinHES/base.xml              |  25 ++
 abs/core/linhes-theme/LinHES/cr-lines.png          | Bin 0 -> 7194 bytes
 abs/core/linhes-theme/LinHES/cr-selectbar.png      | Bin 0 -> 3081 bytes
 .../LinHES/htmls/progdetails_page1.html            |  30 ++
 .../LinHES/htmls/progdetails_page2.html            |  47 +++
 abs/core/linhes-theme/LinHES/menu-ui.xml           | 456 +++++++++++++++++++++
 abs/core/linhes-theme/LinHES/preview.jpg           | Bin 0 -> 7606 bytes
 abs/core/linhes-theme/LinHES/qtlook.txt            |  98 +++++
 abs/core/linhes-theme/LinHES/themeinfo.xml         |  56 +++
 abs/core/linhes-theme/LinHES/ui.xml                | 182 ++++++++
 abs/core/linhes-theme/LinHES/ui/LinHESlogo.png     | Bin 0 -> 14750 bytes
 abs/core/linhes-theme/LinHES/ui/background.png     | Bin 0 -> 195508 bytes
 abs/core/linhes-theme/LinHES/ui/button_off.png     | Bin 0 -> 306 bytes
 abs/core/linhes-theme/LinHES/ui/button_on.png      | Bin 0 -> 1835 bytes
 abs/core/linhes-theme/LinHES/ui/kmlogo.png         | Bin 0 -> 7633 bytes
 abs/core/linhes-theme/LinHES/ui/kmlogo1.png        | Bin 0 -> 10306 bytes
 .../linhes-theme/LinHES/watermark/appearance.png   | Bin 0 -> 17926 bytes
 abs/core/linhes-theme/LinHES/watermark/archive.png | Bin 0 -> 22055 bytes
 abs/core/linhes-theme/LinHES/watermark/backup.png  | Bin 0 -> 20560 bytes
 abs/core/linhes-theme/LinHES/watermark/blank.png   | Bin 0 -> 2740 bytes
 abs/core/linhes-theme/LinHES/watermark/browser.png | Bin 0 -> 23307 bytes
 .../linhes-theme/LinHES/watermark/categories.png   | Bin 0 -> 18445 bytes
 abs/core/linhes-theme/LinHES/watermark/cd.png      | Bin 0 -> 20061 bytes
 abs/core/linhes-theme/LinHES/watermark/cd_rip.png  | Bin 0 -> 22482 bytes
 .../linhes-theme/LinHES/watermark/checklist.png    | Bin 0 -> 18088 bytes
 abs/core/linhes-theme/LinHES/watermark/clock.png   | Bin 0 -> 20829 bytes
 abs/core/linhes-theme/LinHES/watermark/delete.png  | Bin 0 -> 15863 bytes
 abs/core/linhes-theme/LinHES/watermark/dvd.png     | Bin 0 -> 21929 bytes
 abs/core/linhes-theme/LinHES/watermark/dvd_rip.png | Bin 0 -> 17874 bytes
 abs/core/linhes-theme/LinHES/watermark/eject.png   | Bin 0 -> 10120 bytes
 abs/core/linhes-theme/LinHES/watermark/gallery.png | Bin 0 -> 21515 bytes
 .../LinHES/watermark/gallery_settings.png          | Bin 0 -> 16959 bytes
 .../LinHES/watermark/hardware_info.png             | Bin 0 -> 20290 bytes
 .../LinHES/watermark/hardware_settings.png         | Bin 0 -> 19672 bytes
 abs/core/linhes-theme/LinHES/watermark/info.png    | Bin 0 -> 17085 bytes
 .../linhes-theme/LinHES/watermark/joystick.png     | Bin 0 -> 19896 bytes
 abs/core/linhes-theme/LinHES/watermark/keys.png    | Bin 0 -> 9850 bytes
 .../linhes-theme/LinHES/watermark/movietime.png    | Bin 0 -> 22507 bytes
 .../linhes-theme/LinHES/watermark/multimedia.png   | Bin 0 -> 26544 bytes
 abs/core/linhes-theme/LinHES/watermark/music.png   | Bin 0 -> 17707 bytes
 .../LinHES/watermark/music_settings.png            | Bin 0 -> 16664 bytes
 abs/core/linhes-theme/LinHES/watermark/news.png    | Bin 0 -> 18377 bytes
 abs/core/linhes-theme/LinHES/watermark/optical.png | Bin 0 -> 20312 bytes
 abs/core/linhes-theme/LinHES/watermark/phone.png   | Bin 0 -> 21081 bytes
 abs/core/linhes-theme/LinHES/watermark/play.png    | Bin 0 -> 23696 bytes
 .../linhes-theme/LinHES/watermark/previous.png     | Bin 0 -> 15845 bytes
 .../linhes-theme/LinHES/watermark/priority.png     | Bin 0 -> 13209 bytes
 abs/core/linhes-theme/LinHES/watermark/record.png  | Bin 0 -> 14236 bytes
 abs/core/linhes-theme/LinHES/watermark/restore.png | Bin 0 -> 18406 bytes
 abs/core/linhes-theme/LinHES/watermark/search.png  | Bin 0 -> 12588 bytes
 abs/core/linhes-theme/LinHES/watermark/setup.png   | Bin 0 -> 21414 bytes
 abs/core/linhes-theme/LinHES/watermark/smolt.png   | Bin 0 -> 19672 bytes
 abs/core/linhes-theme/LinHES/watermark/stream.png  | Bin 0 -> 19398 bytes
 abs/core/linhes-theme/LinHES/watermark/tng.png     | Bin 0 -> 19019 bytes
 abs/core/linhes-theme/LinHES/watermark/tv.png      | Bin 0 -> 14951 bytes
 abs/core/linhes-theme/LinHES/watermark/upgrade.png | Bin 0 -> 18875 bytes
 abs/core/linhes-theme/LinHES/watermark/video.png   | Bin 0 -> 22688 bytes
 .../LinHES/watermark/video_settings.png            | Bin 0 -> 19234 bytes
 abs/core/linhes-theme/LinHES/watermark/weather.png | Bin 0 -> 20572 bytes
 abs/core/linhes-theme/LinHES/watermark/wizard.png  | Bin 0 -> 18834 bytes
 .../linhes-theme/LinHES/watermark/zoneminder.png   | Bin 0 -> 14476 bytes
 abs/core/linhes-theme/PKGBUILD                     |   4 +-
 63 files changed, 928 insertions(+), 2 deletions(-)
 create mode 100644 abs/core/linhes-theme/LinHES/README
 create mode 100644 abs/core/linhes-theme/LinHES/base.xml
 create mode 100644 abs/core/linhes-theme/LinHES/cr-lines.png
 create mode 100644 abs/core/linhes-theme/LinHES/cr-selectbar.png
 create mode 100644 abs/core/linhes-theme/LinHES/htmls/progdetails_page1.html
 create mode 100644 abs/core/linhes-theme/LinHES/htmls/progdetails_page2.html
 create mode 100644 abs/core/linhes-theme/LinHES/menu-ui.xml
 create mode 100644 abs/core/linhes-theme/LinHES/preview.jpg
 create mode 100644 abs/core/linhes-theme/LinHES/qtlook.txt
 create mode 100755 abs/core/linhes-theme/LinHES/themeinfo.xml
 create mode 100644 abs/core/linhes-theme/LinHES/ui.xml
 create mode 100644 abs/core/linhes-theme/LinHES/ui/LinHESlogo.png
 create mode 100644 abs/core/linhes-theme/LinHES/ui/background.png
 create mode 100644 abs/core/linhes-theme/LinHES/ui/button_off.png
 create mode 100755 abs/core/linhes-theme/LinHES/ui/button_on.png
 create mode 100755 abs/core/linhes-theme/LinHES/ui/kmlogo.png
 create mode 100755 abs/core/linhes-theme/LinHES/ui/kmlogo1.png
 create mode 100644 abs/core/linhes-theme/LinHES/watermark/appearance.png
 create mode 100755 abs/core/linhes-theme/LinHES/watermark/archive.png
 create mode 100644 abs/core/linhes-theme/LinHES/watermark/backup.png
 create mode 100644 abs/core/linhes-theme/LinHES/watermark/blank.png
 create mode 100644 abs/core/linhes-theme/LinHES/watermark/browser.png
 create mode 100755 abs/core/linhes-theme/LinHES/watermark/categories.png
 create mode 100644 abs/core/linhes-theme/LinHES/watermark/cd.png
 create mode 100644 abs/core/linhes-theme/LinHES/watermark/cd_rip.png
 create mode 100644 abs/core/linhes-theme/LinHES/watermark/checklist.png
 create mode 100644 abs/core/linhes-theme/LinHES/watermark/clock.png
 create mode 100755 abs/core/linhes-theme/LinHES/watermark/delete.png
 create mode 100644 abs/core/linhes-theme/LinHES/watermark/dvd.png
 create mode 100644 abs/core/linhes-theme/LinHES/watermark/dvd_rip.png
 create mode 100755 abs/core/linhes-theme/LinHES/watermark/eject.png
 create mode 100644 abs/core/linhes-theme/LinHES/watermark/gallery.png
 create mode 100644 abs/core/linhes-theme/LinHES/watermark/gallery_settings.png
 create mode 100644 abs/core/linhes-theme/LinHES/watermark/hardware_info.png
 create mode 100644 abs/core/linhes-theme/LinHES/watermark/hardware_settings.png
 create mode 100644 abs/core/linhes-theme/LinHES/watermark/info.png
 create mode 100644 abs/core/linhes-theme/LinHES/watermark/joystick.png
 create mode 100644 abs/core/linhes-theme/LinHES/watermark/keys.png
 create mode 100644 abs/core/linhes-theme/LinHES/watermark/movietime.png
 create mode 100644 abs/core/linhes-theme/LinHES/watermark/multimedia.png
 create mode 100644 abs/core/linhes-theme/LinHES/watermark/music.png
 create mode 100644 abs/core/linhes-theme/LinHES/watermark/music_settings.png
 create mode 100644 abs/core/linhes-theme/LinHES/watermark/news.png
 create mode 100644 abs/core/linhes-theme/LinHES/watermark/optical.png
 create mode 100644 abs/core/linhes-theme/LinHES/watermark/phone.png
 create mode 100644 abs/core/linhes-theme/LinHES/watermark/play.png
 create mode 100755 abs/core/linhes-theme/LinHES/watermark/previous.png
 create mode 100644 abs/core/linhes-theme/LinHES/watermark/priority.png
 create mode 100644 abs/core/linhes-theme/LinHES/watermark/record.png
 create mode 100644 abs/core/linhes-theme/LinHES/watermark/restore.png
 create mode 100644 abs/core/linhes-theme/LinHES/watermark/search.png
 create mode 100644 abs/core/linhes-theme/LinHES/watermark/setup.png
 create mode 100644 abs/core/linhes-theme/LinHES/watermark/smolt.png
 create mode 100644 abs/core/linhes-theme/LinHES/watermark/stream.png
 create mode 100644 abs/core/linhes-theme/LinHES/watermark/tng.png
 create mode 100644 abs/core/linhes-theme/LinHES/watermark/tv.png
 create mode 100644 abs/core/linhes-theme/LinHES/watermark/upgrade.png
 create mode 100644 abs/core/linhes-theme/LinHES/watermark/video.png
 create mode 100644 abs/core/linhes-theme/LinHES/watermark/video_settings.png
 create mode 100644 abs/core/linhes-theme/LinHES/watermark/weather.png
 create mode 100644 abs/core/linhes-theme/LinHES/watermark/wizard.png
 create mode 100755 abs/core/linhes-theme/LinHES/watermark/zoneminder.png

diff --git a/abs/core/linhes-theme/LinHES/README b/abs/core/linhes-theme/LinHES/README
new file mode 100644
index 0000000..7fcf653
--- /dev/null
+++ b/abs/core/linhes-theme/LinHES/README
@@ -0,0 +1,32 @@
+===================================
+ The 'MythCenter' theme for MythTV
+===================================
+
+Changelog:
+----------
+04 feb 2005: removed clashing 'MythCenter' text from background
+03 feb 2005: initial release
+
+About:
+------
+
+This theme is originally based on G.A.N.T. by Oscar Carlsson and 
+is inspired by the well-known Media Center theme.
+
+I found the MythTVMediaCenterOSD osd theme by Jason Gabriele to go best 
+with this theme, but of course this is merely a matter of taste. 
+Maybe I will do an OSD theme in the future too.
+
+The most recent version can be downloaded here: 
+http://www.fotoniq.nl/files/MythCenter.tar.gz
+
+Licensing:
+----------
+
+The contents may be freely distributed and changed.
+
+Contact:
+--------
+
+Jeroen Brosens
+jeroen@fotoniq.nl
diff --git a/abs/core/linhes-theme/LinHES/base.xml b/abs/core/linhes-theme/LinHES/base.xml
new file mode 100644
index 0000000..93d8fc2
--- /dev/null
+++ b/abs/core/linhes-theme/LinHES/base.xml
@@ -0,0 +1,25 @@
+<mythuitheme>
+
+    <window name="backgroundwindow">
+        <imagetype name="backimg">
+            <filename>ui/background.png</filename>
+        </imagetype>
+
+        <fontdef name="small" face="Trebuchet MS">
+            <color>#FFFFFF</color>
+            <pixelsize>19</pixelsize>
+	    <weight>bold</weight>
+        </fontdef>
+
+        <fontdef name="medium" from="small">
+            <pixelsize>22</pixelsize>
+        </fontdef>
+
+        <fontdef name="large" from="small">
+            <pixelsize>28</pixelsize>
+        </fontdef>
+
+    </window>
+
+</mythuitheme>
+
diff --git a/abs/core/linhes-theme/LinHES/cr-lines.png b/abs/core/linhes-theme/LinHES/cr-lines.png
new file mode 100644
index 0000000..5edb06a
Binary files /dev/null and b/abs/core/linhes-theme/LinHES/cr-lines.png differ
diff --git a/abs/core/linhes-theme/LinHES/cr-selectbar.png b/abs/core/linhes-theme/LinHES/cr-selectbar.png
new file mode 100644
index 0000000..9c4b635
Binary files /dev/null and b/abs/core/linhes-theme/LinHES/cr-selectbar.png differ
diff --git a/abs/core/linhes-theme/LinHES/htmls/progdetails_page1.html b/abs/core/linhes-theme/LinHES/htmls/progdetails_page1.html
new file mode 100644
index 0000000..0ac7b5e
--- /dev/null
+++ b/abs/core/linhes-theme/LinHES/htmls/progdetails_page1.html
@@ -0,0 +1,30 @@
+<HTML>
+<head>
+    <style type="text/css">
+        h1 {font-size:15pt;font-style: normal;color:#33FF33}
+        p  {font-size:15pt;font-style: normal;color:#FFFFFF;margin-top: -10pt}
+    </style>
+</head>
+
+<body>
+    <h1>%TITLE_LABEL%</h1> <p>%TITLE%</p>
+    <h1>%TITLE_PRONOUNCE_LABEL%</h1> <p>%TITLE_PRONOUNCE%</p>
+    <h1>%DESCRIPTION_LABEL%</h1> <p>%DESCRIPTION%</p>
+    <h1>%EPISODE_LABEL%</h1> <p>%EPISODE%</p>
+    <h1>%ORIGINAL_AIRDATE_LABEL%</h1> <p>%ORIGINAL_AIRDATE%</p>
+    <h1>%ACTORS_LABEL%</h1> <p>%ACTORS%</p>
+    <h1>%DIRECTOR_LABEL%</h1> <p>%DIRECTOR%</p>
+    <h1>%PRODUCER_LABEL%</h1> <p>%PRODUCER%</p>
+    <h1>%EXECUTIVE_PRODUCER_LABEL%</h1> <p>%EXECUTIVE_PRODUCER%</p>
+    <h1>%WRITER_LABEL%</h1> <p>%WRITER%</p>
+    <h1>%GUEST_STAR_LABEL%</h1> <p>%GUEST_STAR%</p>
+    <h1>%HOST_LABEL%</h1> <p>%HOST%</p>
+    <h1>%ADAPTER_LABEL%</h1> <p>%ADAPTER%</p>
+    <h1>%PRESENTER_LABEL%</h1> <p>%PRESENTER%</p>
+    <h1>%COMMENTATOR_LABEL%</h1> <p>%COMMENTATOR%</p>
+    <h1>%GUEST_LABEL%</h1> <p>%GUEST%</p>
+    <h1>%CATEGORY_LABEL%</h1> <p>%CATEGORY%</p>
+    <h1>%MYTHTV_STATUS_LABEL%</h1> <p>%MYTHTV_STATUS%</p>
+</body>
+
+</html>
diff --git a/abs/core/linhes-theme/LinHES/htmls/progdetails_page2.html b/abs/core/linhes-theme/LinHES/htmls/progdetails_page2.html
new file mode 100644
index 0000000..ede4146
--- /dev/null
+++ b/abs/core/linhes-theme/LinHES/htmls/progdetails_page2.html
@@ -0,0 +1,47 @@
+<HTML>
+<head>
+    <style type="text/css">
+        h1 {font-size:15pt;font-style: normal;color:#33FF33}
+        p  {font-size:15pt;font-style: normal;color:#FFFFFF;margin-top: -10pt}
+    </style>
+</head>
+
+<body>
+    <h1>%TITLE_LABEL%</h1> <p>%TITLE%</p>
+    <h1>%TITLE_PRONOUNCE_LABEL%</h1> <p>%TITLE_PRONOUNCE%</p>
+    <h1>%DESCRIPTION_LABEL%</h1> <p>%DESCRIPTION%</p>
+    <h1>%EPISODE_LABEL%</h1> <p>%EPISODE%</p>
+    <h1>%ACTORS_LABEL%</h1> <p>%ACTORS%</p>
+    <h1>%DIRECTOR_LABEL%</h1> <p>%DIRECTOR%</p>
+    <h1>%PRODUCER_LABEL%</h1> <p>%PRODUCER%</p>
+    <h1>%EXECUTIVE_PRODUCER_LABEL%</h1> <p>%EXECUTIVE_PRODUCER%</p>
+    <h1>%WRITER_LABEL%</h1> <p>%WRITER%</p>
+    <h1>%GUEST_STAR_LABEL%</h1> <p>%GUEST_STAR%</p>
+    <h1>%HOST_LABEL%</h1> <p>%HOST%</p>
+    <h1>%ADAPTER_LABEL%</h1> <p>%ADAPTER%</p>
+    <h1>%PRESENTER_LABEL%</h1> <p>%PRESENTER%</p>
+    <h1>%COMMENTATOR_LABEL%</h1> <p>%COMMENTATOR%</p>
+    <h1>%GUEST_LABEL%</h1> <p>%GUEST%</p>
+    <h1>%CATEGORY_LABEL%</h1> <p>%CATEGORY%</p>
+    <h1>%CATEGORY_TYPE_LABEL%</h1> <p>%CATEGORY_TYPE%</p>
+    <h1>%ORIGINAL_AIRDATE_LABEL%</h1> <p>%ORIGINAL_AIRDATE%</p>
+    <h1>%PROGRAMID_LABEL%</h1> <p>%PROGRAMID%</p>
+    <h1>%MYTHTV_STATUS_LABEL%</h1> <p>%MYTHTV_STATUS%</p>
+    <h1>%RECORDING_RULE_LABEL%</h1> <p>%RECORDING_RULE%</p>
+    <h1>%LAST_RECORDED_LABEL%</h1> <p>%LAST_RECORDED%</p>
+    <h1>%NEXT_RECORDING_LABEL%</h1> <p>%NEXT_RECORDING%</p>
+    <h1>%AVERAGE_TIME_SHIFT_LABEL%</h1> <p>%AVERAGE_TIME_SHIFT%</p>
+    <h1>%WATCH_LIST_SCORE_LABEL%</h1> <p>%WATCH_LIST_SCORE%</p>
+    <h1>%WATCH_LIST_STATUS_LABEL%</h1> <p>%WATCH_LIST_STATUS%</p>
+    <h1>%SEARCH_PHRASE_LABEL%</h1> <p>%SEARCH_PHRASE%</p>
+    <h1>%FINDID_LABEL%</h1> <p>%FINDID%</p>
+    <h1>%RECORDING_HOST_LABEL%</h1> <p>%RECORDING_HOST%</p>
+    <h1>%RECORDED_FILE_NAME_LABEL%</h1> <p>%RECORDED_FILE_NAME%</p>
+    <h1>%RECORDED_FILE_SIZE_LABEL%</h1> <p>%RECORDED_FILE_SIZE%</p>
+    <h1>%RECORDING_PROFILE_LABEL%</h1> <p>%RECORDING_PROFILE%</p>
+    <h1>%RECORDING_GROUP_LABEL%</h1> <p>%RECORDING_GROUP%</p>
+    <h1>%STORAGE_GROUP_LABEL%</h1> <p>%STORAGE_GROUP%</p>
+    <h1>%PLAYBACK_GROUP_LABEL%</h1> <p>%PLAYBACK_GROUP%</p>
+</body>
+
+</html>
diff --git a/abs/core/linhes-theme/LinHES/menu-ui.xml b/abs/core/linhes-theme/LinHES/menu-ui.xml
new file mode 100644
index 0000000..3883b21
--- /dev/null
+++ b/abs/core/linhes-theme/LinHES/menu-ui.xml
@@ -0,0 +1,456 @@
+<!-- theme.xml for the MythCenter theme - by Jeroen Brosens -->
+<mythuitheme>
+    <window name="mainmenu">
+
+        <fontdef name="menufontdef" face="Trebuchet MS">
+            <color>#FFFFFF</color>
+            <size>17</size>
+            <bold>yes</bold>
+            <shadowcolor>#000000</shadowcolor>
+            <shadowoffset>2,2</shadowoffset>
+            <shadowalpha>50</shadowalpha>
+        </fontdef>
+
+        <fontdef name="clock" from="small">
+            <size>20</size>
+        </fontdef>
+
+        <clock name="clock">
+            <area>280,525,500,40</area>
+            <fontdef>clock</fontdef>
+            <template>%DATE%, %TIME%</template>
+            <align>center</align>
+            <alpha>85</alpha>
+        </clock>
+     
+        <imagetype name="logo">
+            <position>10,10</position>
+            <filename>ui/kmlogo.png</filename>
+        </imagetype>
+        
+        <imagetype name="logo1">
+            <position>10,10</position>
+            <filename>ui/kmlogo1.png</filename>
+            <alphapulse min="0" max="255" change="10" />
+        </imagetype>
+        
+        <imagetype name="logo2">
+            <position>475,10</position>
+            <filename>ui/LinHESlogo.png</filename>
+        </imagetype>
+
+        <buttonlist name="menu">
+            <area>160,70,300,415</area>
+            <layout>vertical</layout>
+            <wrapstyle>selection</wrapstyle>
+            <spacing>0</spacing>
+            <buttonarea>0,57,300,300</buttonarea>
+            <statetype name="buttonitem">
+                <state name="active">
+                    <area>0,0,300,50</area>
+                    <imagetype name="background" />
+                    <textarea name="buttontext">
+                        <area>5,0,300,50</area>
+                        <fontdef>menufontdef</fontdef>
+                        <align>left,vcenter</align>
+                        <cutdown>yes</cutdown>
+                    </textarea>
+                </state>
+                <state name="selectedactive" from="active">
+                    <imagetype name="background">
+                        <filename>ui/button_on.png</filename>
+                    </imagetype>
+                </state>
+            </statetype>
+            <statetype name="upscrollarrow">
+                <position>250,0</position>
+                <showempty>yes</showempty>
+                <state type="full">
+                    <imagetype name="upon">
+                        <filename>ui/up.png</filename>
+                    </imagetype>
+                </state>
+            </statetype>
+            <statetype name="downscrollarrow">
+                <position>250,365</position>
+                <showempty>yes</showempty>
+                <state type="full">
+                    <imagetype name="dnon">
+                        <filename>ui/down.png</filename>
+                    </imagetype>
+                </state>
+            </statetype>
+        </buttonlist>
+
+        <statetype name="watermarks">
+            <position>575,220</position>
+
+            <state name="DEFAULT">
+                <imagetype name="watermark">
+                    <filename>watermark/tv.png</filename>
+                    <reflection axis="vertical" shear="0" scale="85" length="35" />
+                </imagetype>
+            </state>
+
+            <!--   mainmenu.xml  -->
+            <state name="TV" from="DEFAULT">
+                <imagetype name="watermark">
+                    <filename>watermark/tv.png</filename>
+                </imagetype>
+            </state>
+            <state name="MUSIC" from="DEFAULT">
+                <imagetype name="watermark">
+                    <filename>watermark/music.png</filename>
+                </imagetype>
+            </state>
+            <state name="VIDEO" from="DEFAULT">
+                <imagetype name="watermark">
+                    <filename>watermark/video.png</filename>
+                </imagetype>
+            </state>
+            <state name="DVD" from="DEFAULT">
+                <imagetype name="watermark">
+                    <filename>watermark/dvd.png</filename>
+                </imagetype>
+            </state>
+            <state name="FM" from="DEFAULT">
+                <imagetype name="watermark">
+                    <filename>watermark/radio.png</filename>
+                </imagetype>
+            </state>
+            <state name="IMAGES" from="DEFAULT">
+                <imagetype name="watermark">
+                    <filename>watermark/gallery.png</filename>
+                </imagetype>
+            </state>
+            <state name="GAME" from="DEFAULT">
+                <imagetype name="watermark">
+                    <filename>watermark/joystick.png</filename>
+                </imagetype>
+            </state>
+            <state name="WEATHER" from="DEFAULT">
+                <imagetype name="watermark">
+                    <filename>watermark/weather.png</filename>
+                </imagetype>
+            </state>
+            <state name="NEWS" from="DEFAULT">
+                <imagetype name="watermark">
+                    <filename>watermark/news.png</filename>
+                </imagetype>
+            </state>
+            <state name="WEBPAGE" from="DEFAULT">
+                <imagetype name="watermark">
+                    <filename>watermark/browser.png</filename>
+                </imagetype>
+            </state>
+            <state name="RECIPE" from="DEFAULT">
+                <imagetype name="watermark">
+                    <filename>watermark/pie.png</filename>
+                </imagetype>
+            </state>
+            <state name="PHONE" from="DEFAULT">
+                <imagetype name="watermark">
+                    <filename>watermark/phone.png</filename>
+                </imagetype>
+            </state>
+            <state name="SETUP" from="DEFAULT">
+                <imagetype name="watermark">
+                    <filename>watermark/setup.png</filename>
+                </imagetype>
+            </state>
+            <state name="SHUTDOWN" from="DEFAULT">
+                <imagetype name="watermark">
+                    <filename>watermark/important.png</filename>
+                </imagetype>
+            </state>
+            <state name="BACKUP" from="DEFAULT">
+                <imagetype name="watermark">
+                    <filename>watermark/backup.png</filename>
+                </imagetype>
+            </state>
+            <state name="RESTORE" from="DEFAULT">
+                <imagetype name="watermark">
+                    <filename>watermark/restore.png</filename>
+                </imagetype>
+            </state>
+            <state name="UPGRADE" from="DEFAULT">
+                <imagetype name="watermark">
+                    <filename>watermark/upgrade.png</filename>
+                </imagetype>
+            </state>
+            <state name="LINHES_SETUP" from="DEFAULT">
+                <imagetype name="watermark">
+                    <filename>watermark/hardware_settings.png</filename>
+                </imagetype>
+            </state>
+
+            <!--   dvdmenu.xml  -->
+            <state name="DVD_PLAY" from="DVD" />
+            <state name="VCD_PLAY" from="DEFAULT">
+                <imagetype name="watermark">
+                    <filename>watermark/cd.png</filename>
+                </imagetype>
+            </state>
+            <state name="DVD_RIP" from="DEFAULT">
+                <imagetype name="watermark">
+                    <filename>watermark/dvd_rip.png</filename>
+                </imagetype>
+            </state>
+
+            <!--   dvd_settings.xml  -->
+            <state name="DVD_SETTINGS_GENERAL" from="DVD" />
+            <state name="DVD_SETTINGS_PLAY" from="DVD" />
+            <state name="DVD_SETTINGS_RIP" from="DVD_RIP" />
+
+            <!--   game_settings.xml  -->
+            <state name="GAME_SETTINGS_GENERAL" from="GAME" />
+            <state name="GAME_SCAN" from="GAME" />
+
+            <!-- Netflix -->
+            <state name="NETFLIX" from="DVD" />
+            <state name="NETFLIX_QUEUE" from="DVD" />
+            <state name="NETFLIX_BROWSE" from="DVD" />
+            <state name="NETFLIX_HISTORY" from="DVD" />
+            <state name="SETTINGS_NETFLIX" from="DVD" />
+
+            <!--   main_settings.xml  -->
+            <state name="SETTINGS_GENERAL" from="SETUP" />
+            <state name="SETTINGS_APPEARANCE" from="DEFAULT">
+                <imagetype name="watermark">
+                    <filename>watermark/appearance.png</filename>
+                </imagetype>
+            </state>
+            <state name="SCREENSETUPWIZARD" from="DEFAULT">
+                <imagetype name="watermark">
+                    <filename>watermark/wizard.png</filename>
+                </imagetype>
+            </state>
+            <state name="SETTINGS_TV" from="TV" />
+            <state name="SETTINGS_MUSIC" from="DEFAULT">
+                <imagetype name="watermark">
+                    <filename>watermark/music_settings.png</filename>
+                </imagetype>
+            </state>
+            <state name="SETTINGS_VIDEO" from="DEFAULT">
+                <imagetype name="watermark">
+                    <filename>watermark/video_settings.png</filename>
+                </imagetype>
+            </state>
+            <state name="SETTINGS_DVD" from="DVD" />
+            <state name="SETTINGS_FM" from="FM" />
+            <state name="SETTINGS_IMAGES" from="IMAGES" />
+            <state name="SETTINGS_GAME" from="GAME" />
+            <state name="SETTINGS_WEATHER" from="WEATHER" />
+            <state name="SETTINGS_NEWS" from="NEWS" />
+            <state name="SETTINGS_WEBPAGE" from="WEBPAGE" />
+            <state name="SETTINGS_RECIPE" from="RECIPE" />
+            <state name="SETTINGS_XBOX" from="SETUP" />
+            <state name="SETUP_KEYS" from="DEFAULT">
+                <imagetype name="watermark">
+                    <filename>watermark/keys.png</filename>
+                </imagetype>
+            </state>
+
+            <!--   musicmenu.xml  -->
+            <state name="MUSIC_PLAY" from="MUSIC" />
+            <state name="MUSIC_PLAYLIST" from="MUSIC" />
+            <state name="MUSIC_RIP" from="DEFAULT">
+                <imagetype name="watermark">
+                    <filename>watermark/cd_rip.png</filename>
+                </imagetype>
+            </state>
+            <state name="MUSIC_SCAN" from="DEFAULT">
+                <imagetype name="watermark">
+                    <filename>watermark/search.png</filename>
+                </imagetype>
+            </state>
+
+            <!--   music_settings.xml  -->
+            <state name="MUSIC_SETTINGS_GENERAL" from="SETTINGS_MUSIC" />
+            <state name="MUSIC_SETTINGS_PLAYER" from="SETTINGS_MUSIC" />
+            <state name="MUSIC_SETTINGS_RIP" from="MUSIC_RIP" />
+
+            <!--   tv_schedule.xml  -->
+
+            <state name="TV_PROGRAM_GUIDE" from="DEFAULT">
+                <imagetype name="watermark">
+                    <filename>watermark/clock.png</filename>
+                </imagetype>
+            </state>
+            <state name="TV_PROGFIND" from="DEFAULT">
+                <imagetype name="watermark">
+                    <filename>watermark/search.png</filename>
+                </imagetype>
+            </state>
+            <state name="TV_SEARCH_LISTINGS" from="TV_PROGFIND" />
+            <state name="TV_SEARCH_WORDS" from="TV_PROGFIND" />
+            <state name="TV_SEARCH_LISTS" from="TV_PROGFIND" />
+            <state name="TV_SEARCH_PEOPLE" from="TV_PROGFIND" />
+            <state name="TV_SEARCH_POWER" from="TV_PROGFIND" />
+            <state name="TV_SEARCH_KEYWORDS" from="TV_PROGFIND" />
+            <state name="TV_CUSTOM_RECORD" from="DEFAULT">
+                <imagetype name="watermark">
+                    <filename>watermark/record.png</filename>
+                </imagetype>
+            </state>
+            <state name="TV_MANUAL_SCHEDULE" from="TV_PROGRAM_GUIDE" />
+            <state name="TV_RECPRIORITIES" from="DEFAULT">
+                <imagetype name="watermark">
+                    <filename>watermark/priority.png</filename>
+                </imagetype>
+            </state>
+            <state name="TV_CONFLICTS" from="TV_CUSTOM_RECORD" />
+
+            <!--   recpriorities_settings.xml  -->
+            <state name="TV_RECPRIORITIES_SETTINGS_GENERAL" from="TV_RECPRIORITIES" />
+            <state name="TV_RECPRIORITIES_CHANNEL" from="TV_RECPRIORITIES" />
+            <state name="TV_RECPRIORITIES_CUSTOM" from="TV_RECPRIORITIES" />
+
+            <!--   setup.xml  -->
+            <state name="SETUP_GENERAL" from="SETUP" />
+            <state name="SETUP_STORAGE_GROUPS" from="SETUP" />
+            <state name="SETUP_CAPTURE_CARDS" from="DEFAULT">
+                <imagetype name="watermark">
+                    <filename>watermark/hardware_settings.png</filename>
+                </imagetype>
+            </state>
+            <state name="SETUP_VIDEO_SOURCES" from="SETTINGS_VIDEO" />
+            <state name="SETUP_INPUT_CONNECTIONS" from="DEFAULT">
+                <imagetype name="watermark">
+                    <filename>watermark/hardware_info.png</filename>
+                </imagetype>
+            </state>
+            <state name="SETUP_CHANNEL_EDITOR" from="DEFAULT">
+                <imagetype name="watermark">
+                    <filename>watermark/checklist.png</filename>
+                </imagetype>
+            </state>
+
+            <!--   tv_search.xml  -->
+            <state name="TV_SEARCH_TITLES" from="TV_PROGFIND" />
+            <state name="TV_SEARCH_KEYWORDS" from="TV_PROGFIND" />
+            <state name="TV_SEARCH_PEOPLE" from="TV_PROGFIND" />
+
+            <!--   tv_lists.xml  -->
+            <state name="TV_SEARCH_NEW_TITLES" from="TV_PROGFIND" />
+            <state name="TV_SEARCH_MOVIES" from="TV_PROGFIND" />
+            <state name="TV_SEARCH_CATEGORIES" from="TV_PROGFIND" />
+            <state name="TV_SEARCH_CHANNELS" from="TV_PROGFIND" />
+            <state name="TV_SEARCH_TIMES" from="TV_PROGFIND" />
+            <state name="TV_SEARCH_STORED" from="TV_PROGFIND" />
+
+            <!--   tv_settings.xml  -->
+            <state name="TV_SETTINGS_GENERAL" from="SETUP" />
+            <state name="TV_SETTINGS_PROGRAM_GUIDE" from="TV_PROGRAM_GUIDE" />
+            <state name="TV_SETTINGS_PLAYBACK" from="TV" />
+            <state name="TV_SETTINGS_PLAYBACK_OSD" from="TV" />
+            <state name="TV_SETTINGS_PLAYBACK_GROUPS" from="TV" />
+            <state name="TV_SETTINGS_RECORDING_PROFILES" from="TV_CUSTOM_RECORD" />
+            <state name="TV_SETTINGS_RECPRIORITIES" from="TV_RECPRIORITIES" />
+
+            <!--   tvmenu.xml  -->
+            <state name="TV_WATCH_TV" from="TV" />
+            <state name="TV_SCHEDULE_RECORDINGS" from="TV_PROGRAM_GUIDE" />
+            <state name="TV_WATCH_RECORDINGS" from="DEFAULT">
+                <imagetype name="watermark">
+                    <filename>watermark/play.png</filename>
+                </imagetype>
+            </state>
+            <state name="TV_DELETE" from="DEFAULT">
+                <imagetype name="watermark">
+                    <filename>watermark/delete.png</filename>
+                </imagetype>
+            </state>
+            <state name="TV_PREVIOUS" from="DEFAULT">
+                <imagetype name="watermark">
+                    <filename>watermark/previous.png</filename>
+                </imagetype>
+            </state>
+            <state name="TV_STATUS" from="DEFAULT">
+                <imagetype name="watermark">
+                    <filename>watermark/info.png</filename>
+                </imagetype>
+            </state>
+
+            <!--   video_settings.xml  -->
+            <state name="VIDEO_SETTINGS_GENERAL" from="SETTINGS_VIDEO" />
+            <state name="VIDEO_SETTINGS_PLAYER" from="SETTINGS_VIDEO" />
+            <state name="VIDEO_FILE_TYPES" from="SETTINGS_VIDEO" />
+
+            <!--   videomenu.xml  -->
+            <state name="VIDEO_GALLERY" from="VIDEO" />
+            <state name="VIDEO_BROWSER" from="VIDEO" />
+            <state name="VIDEO_LIST" from="SETTINGS_VIDEO" />
+            <state name="VIDEO_MANAGER" from="SETTINGS_VIDEO" />
+
+            <!--   AltMenus Specific Icons  -->
+            <state name="TV_UPCOMING_RECORDINGS" from="TV_PROGRAM_GUIDE" />
+            <state name="SETTINGS_MEDIA" from="DEFAULT">
+                <imagetype name="watermark">
+                    <filename>watermark/multimedia.png</filename>
+                </imagetype>
+            </state>
+            <state name="SETTINGS_INFO_CENTER" from="DEFAULT">
+                <imagetype name="watermark">
+                    <filename>watermark/hardware_info.png</filename>
+                </imagetype>
+            </state>
+            <state name="MENU_MEDIA_LIBRARY" from="SETTINGS_MEDIA" />
+            <state name="MENU_MANAGE_RECORDINGS" from="SETUP_CHANNEL_EDITOR" />
+            <state name="MENU_INFO_CENTER" from="TV_STATUS" />
+            <state name="MENU_OPTICAL_DISKS" from="DVD" />
+            <state name="MENU_UTILITIES_SETUP" from="SETUP" />
+            <state name="SETUP_FRONTEND" from="SETUP" />
+            <state name="SETUP_BACKEND" from="SETUP" />
+            <state name="SETUP_MENU" from="SETUP" />
+            <state name="STREAM" from="DEFAULT">
+                <imagetype name="watermark">
+                    <filename>watermark/stream.png</filename>
+                </imagetype>
+            </state>
+            <state name="EJECT" from="DEFAULT">
+                <imagetype name="watermark">
+                    <filename>watermark/eject.png</filename>
+                </imagetype>
+            </state>
+            <state name="ARCHIVE" from="DEFAULT">
+                <imagetype name="watermark">
+                    <filename>watermark/archive.png</filename>
+                </imagetype>
+            </state>
+            <state name="SETTINGS_ARCHIVE" from="ARCHIVE" />
+            <state name="ARCHIVE_FINDER" from="TV_PROGFIND" />
+            <state name="ARCHIVE_EXPORT_VIDEO" from="ARCHIVE" />
+            <state name="ARCHIVE_IMPORT_VIDEO" from="ARCHIVE" />
+            <state name="ARCHIVE_SELECT_RECORDINGS" from="ARCHIVE" />
+            <state name="ARCHIVE_SELECT_VIDEOS" from="ARCHIVE" />
+            <state name="ARCHIVE_SELECT_FILES" from="ARCHIVE" />
+            <state name="ARCHIVE_CREATE_DVD" from="ARCHIVE" />
+            <state name="ARCHIVE_CREATE_ARCHIVE" from="ARCHIVE" />
+            <state name="ARCHIVE_UTILITIES" from="ARCHIVE" />
+            <state name="ARCHIVE_LAST_LOG" from="TV_STATUS" />
+            <state name="ARCHIVE_TEST_DVD" from="DEFAULT">
+                <imagetype name="watermark">
+                    <filename>watermark/archive.png</filename>
+                </imagetype>
+            </state>
+            <state name="ARCHIVE_BURN_DVD" from="ARCHIVE" />
+            <!-- Movietimes -->
+            <state name="MOVIETIMES" from="DEFAULT">
+                <imagetype name="watermark">
+                    <filename>watermark/movietime.png</filename>
+                </imagetype>
+            </state>
+            <state name="SETTINGS_MOVIETIME" from="MOVIETIMES" />
+            <!-- Zoneminder -->
+            <state name="ZONEMINDER">
+                <imagetype name="watermark">
+                    <filename>watermark/zoneminder.png</filename>
+                </imagetype>
+            </state>
+            <state name="SETTINGS_ZONEMINDER" from="ZONEMINDER" />
+        </statetype>
+
+    </window>
+
+</mythuitheme>
diff --git a/abs/core/linhes-theme/LinHES/preview.jpg b/abs/core/linhes-theme/LinHES/preview.jpg
new file mode 100644
index 0000000..d89d8e5
Binary files /dev/null and b/abs/core/linhes-theme/LinHES/preview.jpg differ
diff --git a/abs/core/linhes-theme/LinHES/qtlook.txt b/abs/core/linhes-theme/LinHES/qtlook.txt
new file mode 100644
index 0000000..1e1a3d5
--- /dev/null
+++ b/abs/core/linhes-theme/LinHES/qtlook.txt
@@ -0,0 +1,98 @@
+# Color of the background
+str BackgroundColor=SteelBlue
+# Color of lines, text, etc
+str ForegroundColor=white
+# Pixmap to use for the background
+str BackgroundPixmap=ui/background.png
+
+# Colors for the different program categories
+str Cat_Comedy=DarkOrchid
+str Cat_Animals=ForestGreen
+str Cat_Nature=SprintGreen
+str Cat_SciFi=DarkBlue
+str Cat_Horror=firebrick3
+str Cat_Action=maroon
+str Cat_Game=orchid
+str Cat_Children's=MediumSlateBlue
+str Cat_Edu=CornflowerBlue
+str Cat_Adult=thistle3
+str Cat_Musical=turquoise3
+str Cat_News=DarkOrange3
+str Cat_Reality=sienna
+str Cat_Cooking=tan3
+str Cat_Doc=goldenrod
+str Cat_Sports=DarkCyan
+str Cat_Mystery=SlateGrey
+str Cat_Drama=rosybrown3
+str Cat_Classic=grey62
+str Cat_Crime=MediumVioletRed
+str Cat_Talk=MediumTurquoise
+
+str ActiveForeground=#ffffff
+str ActiveButton=#38689c
+str ActiveLight=#5788c3
+str ActiveMidlight=#4871a2
+str ActiveDark=#162231
+str ActiveMid=#37567b
+str ActiveText=#dcdcdc
+str ActiveBrightText=#5788c3
+str ActiveButtonText=#ffffff
+str ActiveBase=#002a4e
+str ActiveBackground=#426794
+str ActiveShadow=#000000
+str ActiveHighlight=#70a0d8
+str ActiveHighlightedText=#000000
+
+str InactiveForeground=#ffffff
+str InactiveButton=#426794
+str InactiveLight=#5788c3
+str InactiveMidlight=#4871a2
+str InactiveDark=#162231
+str InactiveMid=#37567b
+str InactiveText=#dcdcdc
+str InactiveBrightText=#5788c3
+str InactiveButtonText=#ffffff
+str InactiveBase=#002a4e
+str InactiveBackground=#426794
+str InactiveShadow=#000000
+str InactiveHighlight=#5cb3ff
+str InactiveHighlightedText=#000000
+
+str DisabledForeground=#555555
+str DisabledButton=#426794
+str DisabledLight=#5788c3
+str DisabledMidlight=#4871a2
+str DisabledDark=#162231
+str DisabledMid=#37567b
+str DisabledText=#37567b
+str DisabledBrightText=#5788c3
+str DisabledButtonText=#37567b
+str DisabledBase=#002a4e
+str DisabledBackground=#426794
+str DisabledShadow=#000000
+str DisabledHighlight=#000080
+str DisabledHighlightedText=#ffffff
+
+str curTimeChan_bgColor=#8f2813
+str curTimeChan_fgColor=#ffffff
+str date_bgColor=#0f2e8f
+str date_dsColor=#000000
+str date_fgColor=#ffffff
+str chan_bgColor=#0f2f5a
+str chan_dsColor=#000000
+str chan_fgColor=#ffffff
+str time_bgColor=#0f2e8f
+str time_dsColor=#000000
+str time_fgColor=#ffffff
+str prog_bgColor=#2d587b
+str prog_fgColor=#ffffff
+str progLine_Color=#104064
+str progArrow_Color=#ffffff
+int progArrow_Type=0
+str curProg_bgColor=#85a5bc
+str curRecProg_bgColor=#bc4c32
+str curProg_dsColor=#000000
+str curProg_fgColor=#eefb92
+str misChanIcon_bgColor=#000000
+str misChanIcon_fgColor=#ffffff
+
diff --git a/abs/core/linhes-theme/LinHES/themeinfo.xml b/abs/core/linhes-theme/LinHES/themeinfo.xml
new file mode 100755
index 0000000..3ff2771
--- /dev/null
+++ b/abs/core/linhes-theme/LinHES/themeinfo.xml
@@ -0,0 +1,56 @@
+<themeinfo>
+    <!-- The Theme Name (Required) -->
+    <name>LinHES</name>
+
+    <!-- The Theme Types (Required) -->
+    <types>
+        <!-- Type. Legal Values are one or more of: UI, OSD and Menu -->
+        <type>UI</type>
+    </types>
+
+    <!-- Aspect ratio of the theme. (Required)
+         Maybe be: 4:3, 5:4, 16:9 or 16:10 -->
+    <aspect>4:3</aspect>
+
+    <!-- The base resolution of the theme before being scaled to the users
+         resolution (Required)
+         Usually 800x600 (4:3) or 1280x720 (16:9) -->
+    <baseres>800x600</baseres>
+
+    <!-- Theme Author Details (Optional)-->
+    <author>
+        <!-- Your name -->
+        <name>Cecil Watson</name>
+
+        <!-- Your Email Address -->
+        <email>linhes@ovi.com</email>
+    </author>
+
+    <!-- The Versioning Info (Required) -->
+    <version>
+        <!-- Major version changes mean the theme is no longer
+             compatible with earlier versions of mythtv -->
+        <major>1</major>
+
+        <!-- Minor version changes are backwards compatible -->
+        <minor>4</minor>
+    </version>
+
+    <!-- Theme Details (Required) -->
+    <detail>
+        <!-- At least one thumbnail image named "preview" must be included
+             with the theme.
+             There is no limit to the number of thumbnails.
+             Each thumbnail must be given a different name -->
+        <thumbnail name="preview">preview.jpg</thumbnail>
+
+        <!-- A description of the theme, including general colours and
+             style. The description should include any details that
+             may help to locate your theme in a search. -->
+        <description>LinHES theme based on MythCenter.</description>
+
+        <!-- Errata. A list of known faults, missing elements or unfinished
+             areas. e.g. "mythgallery not themed" -->
+        <errata>N/A</errata>
+    </detail>
+</themeinfo>
diff --git a/abs/core/linhes-theme/LinHES/ui.xml b/abs/core/linhes-theme/LinHES/ui.xml
new file mode 100644
index 0000000..7857798
--- /dev/null
+++ b/abs/core/linhes-theme/LinHES/ui.xml
@@ -0,0 +1,182 @@
+	<!-- ui.xml for the MythCenter theme - by Jeroen Brosens -->
+<mythuitheme>
+
+  <window name="schdiff">
+
+    <font name="active_font" face="Trebuchet MS">
+      <color>#ffffff</color>
+      <size>16</size>
+      <size:small>11</size:small>
+      <bold>yes</bold>
+    </font>
+
+    <font name="inactive_font" face="Trebuchet MS">
+      <color>#9999cc</color>
+      <size>16</size>
+      <size:small>11</size:small>
+      <bold>yes</bold>
+    </font>
+
+    <font name="record_font" face="Trebuchet MS">
+      <color>#33FF33</color>
+      <size>16</size>
+      <size:small>11</size:small>
+      <bold>yes</bold>
+    </font>
+
+    <font name="recording_font" face="Trebuchet MS">
+      <color>#FF33FF</color>
+      <size>16</size>
+      <size:small>11</size:small>
+      <bold>yes</bold>
+    </font>
+
+    <font name="norecordfnt" face="Trebuchet MS">
+      <color>#999999</color>
+      <size>16</size>
+      <size:small>11</size:small>
+      <bold>yes</bold>
+    </font>
+
+    <font name="conflictfnt" face="Trebuchet MS">
+      <color>#ffff33</color>
+      <size>16</size>
+      <size:small>11</size:small>
+      <bold>yes</bold>
+    </font>
+
+    <font name="currenttitle" face="Trebuchet MS">
+      <color>#ffff33</color>
+      <size>18</size>
+      <size:small>12</size:small>
+      <bold>yes</bold>
+    </font>
+
+    <font name="title" face="Trebuchet MS">
+      <color>#ffffff</color>
+      <dropcolor>#000000</dropcolor>
+      <size>27</size>
+      <size:small>13</size:small>
+      <shadow>3,3</shadow>
+      <bold>yes</bold>
+    </font>
+
+    <font name="info" face="Trebuchet MS">
+      <color>#ffffff</color>
+      <size>17</size>
+      <size:small>8</size:small>
+      <shadow>1,1</shadow>
+      <bold>yes</bold>
+    </font>
+
+    <font name="message" face="Trebuchet MS">
+      <color>#ffffff</color>
+      <size>16</size>
+      <size:small>10</size:small>
+      <shadow>1,1</shadow>
+      <bold>yes</bold>
+    </font>
+
+    <font name="messagegray" face="Trebuchet MS">
+      <color>#999999</color>
+      <size>16</size>
+      <size:small>10</size:small>
+      <shadow>1,1</shadow>
+      <bold>yes</bold>
+    </font>
+
+    <font name="messageyellow" face="Trebuchet MS">
+      <color>#ffff33</color>
+      <size>16</size>
+      <size:small>10</size:small>
+      <shadow>1,1</shadow>
+      <bold>yes</bold>
+    </font>
+
+    <container name="background">
+      <textarea name="sched" draworder="0">
+        <area>20,10,400,40</area>
+        <font>info</font>
+        <value>Preview Schedule Changes:</value>
+      </textarea>
+      <textarea name="view" align="right" draworder="0">
+        <area>400,10,380,30</area>
+        <font>info</font>
+      </textarea>
+      <image name="filler" draworder="0" fleximage="yes">
+        <filename>cr-background.png</filename>
+        <position>0,39</position>
+      </image>
+    </container>
+
+    <container name="selector">
+      <area>0,39,800,290</area>
+      <listarea name="conflictlist" draworder="4">
+        <area>20,12,760,265</area>
+        <fcnfont name="conflictfnt" function="conflictingrecording"></fcnfont>
+        <fcnfont name="norecordfnt" function="disabledrecording"></fcnfont>
+        <fcnfont name="active_font" function="active"></fcnfont>
+        <fcnfont name="inactive_font" function="inactive"></fcnfont>
+        <fcnfont name="record_font" function="record"></fcnfont>
+        <fcnfont name="recording_font" function="recording"></fcnfont>
+        <fcnfont name="active_font" function="selected"></fcnfont>
+        <columnpadding>10</columnpadding>
+        <column number="1" width="160" context="-1"></column>
+        <column number="2" width="120" context="-1"></column>
+        <column number="3" width="370" context="-1"></column>
+        <column number="4" width="20" context="-1"></column>
+        <column number="5" width="20" context="-1"></column>
+        <items>9</items>
+        <image function="selectionbar" filename="cr-selectbar.png" location="-14,-5"></image>
+        <image function="uparrow" filename="uparrow.png" location="760,20"></image>
+        <image function="downarrow" filename="downarrow.png" location="760,220"></image>
+      </listarea>
+      <image name="showinglines" draworder="5" fleximage="no">
+        <filename>cr-lines.png</filename>
+        <position>0,0</position>
+      </image>
+    </container>
+
+    <container name="program_info">
+      <area>0,360,800,210</area>
+      <textarea name="title" draworder="6">
+        <area>20,0,800,40</area>
+        <font>title</font>
+      </textarea>
+      <textarea name="channel" draworder="6">
+        <area>20,40,160,30</area>
+        <font>info</font>
+      </textarea>
+      <textarea name="timedate" draworder="6">
+        <area>200,40,420,30</area>
+        <font>info</font>
+      </textarea>
+      <textarea name="subdescr" draworder="6">
+        <area>20,70,720,140</area>
+        <font>info</font>
+        <multiline>yes</multiline>
+        <value>%SUBTITLE|"|"
+%%STARS%%DESCRIPTION%</value>
+      </textarea>
+    </container>
+
+    <container name="status_info">
+      <area>300,330,480,30</area>
+      <textarea name="recordingstatus" align="right" draworder="6">
+        <area>0,0,480,30</area>
+        <font>message</font>
+      </textarea>
+    </container>
+
+   <container name="norecordings_list">
+      <textarea name="msg" align="center" draworder="8">
+         <area>0,110,800,70</area>
+         <font>info</font>
+         <value>The recording schedule would not be affected.</value>
+         <multiline>yes</multiline>
+      </textarea>
+    </container>
+
+  </window>
+
+</mythuitheme>
diff --git a/abs/core/linhes-theme/LinHES/ui/LinHESlogo.png b/abs/core/linhes-theme/LinHES/ui/LinHESlogo.png
new file mode 100644
index 0000000..b0ebf1a
Binary files /dev/null and b/abs/core/linhes-theme/LinHES/ui/LinHESlogo.png differ
diff --git a/abs/core/linhes-theme/LinHES/ui/background.png b/abs/core/linhes-theme/LinHES/ui/background.png
new file mode 100644
index 0000000..d948de7
Binary files /dev/null and b/abs/core/linhes-theme/LinHES/ui/background.png differ
diff --git a/abs/core/linhes-theme/LinHES/ui/button_off.png b/abs/core/linhes-theme/LinHES/ui/button_off.png
new file mode 100644
index 0000000..56d4c36
Binary files /dev/null and b/abs/core/linhes-theme/LinHES/ui/button_off.png differ
diff --git a/abs/core/linhes-theme/LinHES/ui/button_on.png b/abs/core/linhes-theme/LinHES/ui/button_on.png
new file mode 100755
index 0000000..09c10f9
Binary files /dev/null and b/abs/core/linhes-theme/LinHES/ui/button_on.png differ
diff --git a/abs/core/linhes-theme/LinHES/ui/kmlogo.png b/abs/core/linhes-theme/LinHES/ui/kmlogo.png
new file mode 100755
index 0000000..19ea6d5
Binary files /dev/null and b/abs/core/linhes-theme/LinHES/ui/kmlogo.png differ
diff --git a/abs/core/linhes-theme/LinHES/ui/kmlogo1.png b/abs/core/linhes-theme/LinHES/ui/kmlogo1.png
new file mode 100755
index 0000000..0550ef3
Binary files /dev/null and b/abs/core/linhes-theme/LinHES/ui/kmlogo1.png differ
diff --git a/abs/core/linhes-theme/LinHES/watermark/appearance.png b/abs/core/linhes-theme/LinHES/watermark/appearance.png
new file mode 100644
index 0000000..37b575e
Binary files /dev/null and b/abs/core/linhes-theme/LinHES/watermark/appearance.png differ
diff --git a/abs/core/linhes-theme/LinHES/watermark/archive.png b/abs/core/linhes-theme/LinHES/watermark/archive.png
new file mode 100755
index 0000000..0fd1dff
Binary files /dev/null and b/abs/core/linhes-theme/LinHES/watermark/archive.png differ
diff --git a/abs/core/linhes-theme/LinHES/watermark/backup.png b/abs/core/linhes-theme/LinHES/watermark/backup.png
new file mode 100644
index 0000000..a63ea36
Binary files /dev/null and b/abs/core/linhes-theme/LinHES/watermark/backup.png differ
diff --git a/abs/core/linhes-theme/LinHES/watermark/blank.png b/abs/core/linhes-theme/LinHES/watermark/blank.png
new file mode 100644
index 0000000..163a9ff
Binary files /dev/null and b/abs/core/linhes-theme/LinHES/watermark/blank.png differ
diff --git a/abs/core/linhes-theme/LinHES/watermark/browser.png b/abs/core/linhes-theme/LinHES/watermark/browser.png
new file mode 100644
index 0000000..0171ab6
Binary files /dev/null and b/abs/core/linhes-theme/LinHES/watermark/browser.png differ
diff --git a/abs/core/linhes-theme/LinHES/watermark/categories.png b/abs/core/linhes-theme/LinHES/watermark/categories.png
new file mode 100755
index 0000000..e0fd57f
Binary files /dev/null and b/abs/core/linhes-theme/LinHES/watermark/categories.png differ
diff --git a/abs/core/linhes-theme/LinHES/watermark/cd.png b/abs/core/linhes-theme/LinHES/watermark/cd.png
new file mode 100644
index 0000000..9f08c2f
Binary files /dev/null and b/abs/core/linhes-theme/LinHES/watermark/cd.png differ
diff --git a/abs/core/linhes-theme/LinHES/watermark/cd_rip.png b/abs/core/linhes-theme/LinHES/watermark/cd_rip.png
new file mode 100644
index 0000000..92150bd
Binary files /dev/null and b/abs/core/linhes-theme/LinHES/watermark/cd_rip.png differ
diff --git a/abs/core/linhes-theme/LinHES/watermark/checklist.png b/abs/core/linhes-theme/LinHES/watermark/checklist.png
new file mode 100644
index 0000000..66fd8b2
Binary files /dev/null and b/abs/core/linhes-theme/LinHES/watermark/checklist.png differ
diff --git a/abs/core/linhes-theme/LinHES/watermark/clock.png b/abs/core/linhes-theme/LinHES/watermark/clock.png
new file mode 100644
index 0000000..621fec4
Binary files /dev/null and b/abs/core/linhes-theme/LinHES/watermark/clock.png differ
diff --git a/abs/core/linhes-theme/LinHES/watermark/delete.png b/abs/core/linhes-theme/LinHES/watermark/delete.png
new file mode 100755
index 0000000..d8b9e76
Binary files /dev/null and b/abs/core/linhes-theme/LinHES/watermark/delete.png differ
diff --git a/abs/core/linhes-theme/LinHES/watermark/dvd.png b/abs/core/linhes-theme/LinHES/watermark/dvd.png
new file mode 100644
index 0000000..be25627
Binary files /dev/null and b/abs/core/linhes-theme/LinHES/watermark/dvd.png differ
diff --git a/abs/core/linhes-theme/LinHES/watermark/dvd_rip.png b/abs/core/linhes-theme/LinHES/watermark/dvd_rip.png
new file mode 100644
index 0000000..81b776c
Binary files /dev/null and b/abs/core/linhes-theme/LinHES/watermark/dvd_rip.png differ
diff --git a/abs/core/linhes-theme/LinHES/watermark/eject.png b/abs/core/linhes-theme/LinHES/watermark/eject.png
new file mode 100755
index 0000000..871576d
Binary files /dev/null and b/abs/core/linhes-theme/LinHES/watermark/eject.png differ
diff --git a/abs/core/linhes-theme/LinHES/watermark/gallery.png b/abs/core/linhes-theme/LinHES/watermark/gallery.png
new file mode 100644
index 0000000..ad5baa5
Binary files /dev/null and b/abs/core/linhes-theme/LinHES/watermark/gallery.png differ
diff --git a/abs/core/linhes-theme/LinHES/watermark/gallery_settings.png b/abs/core/linhes-theme/LinHES/watermark/gallery_settings.png
new file mode 100644
index 0000000..17f0c9a
Binary files /dev/null and b/abs/core/linhes-theme/LinHES/watermark/gallery_settings.png differ
diff --git a/abs/core/linhes-theme/LinHES/watermark/hardware_info.png b/abs/core/linhes-theme/LinHES/watermark/hardware_info.png
new file mode 100644
index 0000000..0d7232d
Binary files /dev/null and b/abs/core/linhes-theme/LinHES/watermark/hardware_info.png differ
diff --git a/abs/core/linhes-theme/LinHES/watermark/hardware_settings.png b/abs/core/linhes-theme/LinHES/watermark/hardware_settings.png
new file mode 100644
index 0000000..44dec7a
Binary files /dev/null and b/abs/core/linhes-theme/LinHES/watermark/hardware_settings.png differ
diff --git a/abs/core/linhes-theme/LinHES/watermark/info.png b/abs/core/linhes-theme/LinHES/watermark/info.png
new file mode 100644
index 0000000..41821ab
Binary files /dev/null and b/abs/core/linhes-theme/LinHES/watermark/info.png differ
diff --git a/abs/core/linhes-theme/LinHES/watermark/joystick.png b/abs/core/linhes-theme/LinHES/watermark/joystick.png
new file mode 100644
index 0000000..e482e5d
Binary files /dev/null and b/abs/core/linhes-theme/LinHES/watermark/joystick.png differ
diff --git a/abs/core/linhes-theme/LinHES/watermark/keys.png b/abs/core/linhes-theme/LinHES/watermark/keys.png
new file mode 100644
index 0000000..fa8fecb
Binary files /dev/null and b/abs/core/linhes-theme/LinHES/watermark/keys.png differ
diff --git a/abs/core/linhes-theme/LinHES/watermark/movietime.png b/abs/core/linhes-theme/LinHES/watermark/movietime.png
new file mode 100644
index 0000000..df3bcb6
Binary files /dev/null and b/abs/core/linhes-theme/LinHES/watermark/movietime.png differ
diff --git a/abs/core/linhes-theme/LinHES/watermark/multimedia.png b/abs/core/linhes-theme/LinHES/watermark/multimedia.png
new file mode 100644
index 0000000..0e8e1dd
Binary files /dev/null and b/abs/core/linhes-theme/LinHES/watermark/multimedia.png differ
diff --git a/abs/core/linhes-theme/LinHES/watermark/music.png b/abs/core/linhes-theme/LinHES/watermark/music.png
new file mode 100644
index 0000000..a97ba4c
Binary files /dev/null and b/abs/core/linhes-theme/LinHES/watermark/music.png differ
diff --git a/abs/core/linhes-theme/LinHES/watermark/music_settings.png b/abs/core/linhes-theme/LinHES/watermark/music_settings.png
new file mode 100644
index 0000000..9e65588
Binary files /dev/null and b/abs/core/linhes-theme/LinHES/watermark/music_settings.png differ
diff --git a/abs/core/linhes-theme/LinHES/watermark/news.png b/abs/core/linhes-theme/LinHES/watermark/news.png
new file mode 100644
index 0000000..438a02d
Binary files /dev/null and b/abs/core/linhes-theme/LinHES/watermark/news.png differ
diff --git a/abs/core/linhes-theme/LinHES/watermark/optical.png b/abs/core/linhes-theme/LinHES/watermark/optical.png
new file mode 100644
index 0000000..1cdf3ea
Binary files /dev/null and b/abs/core/linhes-theme/LinHES/watermark/optical.png differ
diff --git a/abs/core/linhes-theme/LinHES/watermark/phone.png b/abs/core/linhes-theme/LinHES/watermark/phone.png
new file mode 100644
index 0000000..c9abc2e
Binary files /dev/null and b/abs/core/linhes-theme/LinHES/watermark/phone.png differ
diff --git a/abs/core/linhes-theme/LinHES/watermark/play.png b/abs/core/linhes-theme/LinHES/watermark/play.png
new file mode 100644
index 0000000..e9c8b15
Binary files /dev/null and b/abs/core/linhes-theme/LinHES/watermark/play.png differ
diff --git a/abs/core/linhes-theme/LinHES/watermark/previous.png b/abs/core/linhes-theme/LinHES/watermark/previous.png
new file mode 100755
index 0000000..57363e8
Binary files /dev/null and b/abs/core/linhes-theme/LinHES/watermark/previous.png differ
diff --git a/abs/core/linhes-theme/LinHES/watermark/priority.png b/abs/core/linhes-theme/LinHES/watermark/priority.png
new file mode 100644
index 0000000..9b00a35
Binary files /dev/null and b/abs/core/linhes-theme/LinHES/watermark/priority.png differ
diff --git a/abs/core/linhes-theme/LinHES/watermark/record.png b/abs/core/linhes-theme/LinHES/watermark/record.png
new file mode 100644
index 0000000..7c07dd9
Binary files /dev/null and b/abs/core/linhes-theme/LinHES/watermark/record.png differ
diff --git a/abs/core/linhes-theme/LinHES/watermark/restore.png b/abs/core/linhes-theme/LinHES/watermark/restore.png
new file mode 100644
index 0000000..6ed810c
Binary files /dev/null and b/abs/core/linhes-theme/LinHES/watermark/restore.png differ
diff --git a/abs/core/linhes-theme/LinHES/watermark/search.png b/abs/core/linhes-theme/LinHES/watermark/search.png
new file mode 100644
index 0000000..2371f90
Binary files /dev/null and b/abs/core/linhes-theme/LinHES/watermark/search.png differ
diff --git a/abs/core/linhes-theme/LinHES/watermark/setup.png b/abs/core/linhes-theme/LinHES/watermark/setup.png
new file mode 100644
index 0000000..4aaa062
Binary files /dev/null and b/abs/core/linhes-theme/LinHES/watermark/setup.png differ
diff --git a/abs/core/linhes-theme/LinHES/watermark/smolt.png b/abs/core/linhes-theme/LinHES/watermark/smolt.png
new file mode 100644
index 0000000..44dec7a
Binary files /dev/null and b/abs/core/linhes-theme/LinHES/watermark/smolt.png differ
diff --git a/abs/core/linhes-theme/LinHES/watermark/stream.png b/abs/core/linhes-theme/LinHES/watermark/stream.png
new file mode 100644
index 0000000..493e5da
Binary files /dev/null and b/abs/core/linhes-theme/LinHES/watermark/stream.png differ
diff --git a/abs/core/linhes-theme/LinHES/watermark/tng.png b/abs/core/linhes-theme/LinHES/watermark/tng.png
new file mode 100644
index 0000000..ac0b685
Binary files /dev/null and b/abs/core/linhes-theme/LinHES/watermark/tng.png differ
diff --git a/abs/core/linhes-theme/LinHES/watermark/tv.png b/abs/core/linhes-theme/LinHES/watermark/tv.png
new file mode 100644
index 0000000..e836592
Binary files /dev/null and b/abs/core/linhes-theme/LinHES/watermark/tv.png differ
diff --git a/abs/core/linhes-theme/LinHES/watermark/upgrade.png b/abs/core/linhes-theme/LinHES/watermark/upgrade.png
new file mode 100644
index 0000000..c838a3d
Binary files /dev/null and b/abs/core/linhes-theme/LinHES/watermark/upgrade.png differ
diff --git a/abs/core/linhes-theme/LinHES/watermark/video.png b/abs/core/linhes-theme/LinHES/watermark/video.png
new file mode 100644
index 0000000..bf07e27
Binary files /dev/null and b/abs/core/linhes-theme/LinHES/watermark/video.png differ
diff --git a/abs/core/linhes-theme/LinHES/watermark/video_settings.png b/abs/core/linhes-theme/LinHES/watermark/video_settings.png
new file mode 100644
index 0000000..a786c2c
Binary files /dev/null and b/abs/core/linhes-theme/LinHES/watermark/video_settings.png differ
diff --git a/abs/core/linhes-theme/LinHES/watermark/weather.png b/abs/core/linhes-theme/LinHES/watermark/weather.png
new file mode 100644
index 0000000..6ef59eb
Binary files /dev/null and b/abs/core/linhes-theme/LinHES/watermark/weather.png differ
diff --git a/abs/core/linhes-theme/LinHES/watermark/wizard.png b/abs/core/linhes-theme/LinHES/watermark/wizard.png
new file mode 100644
index 0000000..3b7a184
Binary files /dev/null and b/abs/core/linhes-theme/LinHES/watermark/wizard.png differ
diff --git a/abs/core/linhes-theme/LinHES/watermark/zoneminder.png b/abs/core/linhes-theme/LinHES/watermark/zoneminder.png
new file mode 100755
index 0000000..b97dec2
Binary files /dev/null and b/abs/core/linhes-theme/LinHES/watermark/zoneminder.png differ
diff --git a/abs/core/linhes-theme/PKGBUILD b/abs/core/linhes-theme/PKGBUILD
index 9399806..a9a7cbb 100644
--- a/abs/core/linhes-theme/PKGBUILD
+++ b/abs/core/linhes-theme/PKGBUILD
@@ -8,11 +8,11 @@ pkgdesc="Default LinHES theme."
 arch=('i686' 'x86_64')
 license=('GPL2')
 url="http://linhes.org/"
-source=(ftp://ftp.knoppmyth.net/R6/sources/linhes-theme-1.4.tar.bz2)
 
 build() {
   cd $startdir/src/
+  cp -a $startdir/LinHES $startdir/src/
   mkdir -p $startdir/pkg/usr/share/mythtv/themes
   cp -a LinHES $startdir/pkg/usr/share/mythtv/themes
 }
-md5sums=('dfcf30f641d989fc6e4f20bc6c9da515')
+md5sums=()
-- 
cgit v0.12


From be452ab0786fa9a452938c647704122f42838a28 Mon Sep 17 00:00:00 2001
From: Cecil <knoppmyth@gmail.com>
Date: Sat, 24 Sep 2011 00:20:16 -0700
Subject: fbsplash:Bumped to latest version.

---
 abs/core/fbsplash/PKGBUILD                    |  38 +++---
 abs/core/fbsplash/fbsplash-basic.sh           |  39 +++---
 abs/core/fbsplash/fbsplash.git.patch          | 166 ------------------------
 abs/core/fbsplash/fbsplash.initcpio_hook      | 128 ++++++-------------
 abs/core/fbsplash/fbsplash.initcpio_install   | 176 ++++++++++++--------------
 abs/core/fbsplash/splash.conf                 |  31 +++--
 abs/core/fbsplash/splash_start_initcpio.patch |  22 ++++
 7 files changed, 202 insertions(+), 398 deletions(-)
 delete mode 100644 abs/core/fbsplash/fbsplash.git.patch
 create mode 100644 abs/core/fbsplash/splash_start_initcpio.patch

diff --git a/abs/core/fbsplash/PKGBUILD b/abs/core/fbsplash/PKGBUILD
index 3b25af8..49725d4 100644
--- a/abs/core/fbsplash/PKGBUILD
+++ b/abs/core/fbsplash/PKGBUILD
@@ -2,39 +2,50 @@
 # Contributor: Kurt J. Bosch <kjb-temp-2009 at alpenjodel.de>
 
 pkgname=fbsplash
-pkgver=1.5.4.3
-pkgrel=38
+pkgver=1.5.4.4
+pkgrel=7
 pkgdesc="A userspace implementation of a splash screen for Linux (formerly known as gensplash)"
 arch=('i686' 'x86_64')
 url="http://fbsplash.berlios.de"
 license=('GPL')
 depends=('miscsplashutils' 'freetype2' 'libjpeg' 'libpng' 'libmng' 'lcms' 'gpm') 
-optdepends=('kernel26-fbcondecor: enable console background images'
+optdepends=('linux-fbcondecor: enable console background images'
             'fbsplash-extras: additional functionality like daemon icons'
             'uswsusp-fbsplash: suspend to disk with fbsplash'
-            'python2: convert themes from splashy to fbsplash')
+            'python: convert themes from splashy to fbsplash')
 conflicts=('fbsplash-scripts' 'initscripts-extras-fbsplash')
 options=('!makeflags')
 backup=('etc/conf.d/fbcondecor' 'etc/conf.d/splash')
 install=fbsplash.install
-source=(http://dev.gentoo.org/~spock/projects/gensplash/archive/splashutils-${pkgver}.tar.bz2
-        fbsplash.git.patch
+source=(http://download.berlios.de/fbsplash/splashutils-${pkgver}.tar.bz2
+        splash_start_initcpio.patch
         splash.conf
         fbsplash-basic.sh
         fbsplash.initcpio_install
         fbsplash.initcpio_hook
         fbcondecor.daemon
         fbcondecor.conf)
+md5sums=('2a16704c4adde97b58812cd89e3f2342'
+         '4045e315c52f5a576fca4f7e634eeb91'
+         '90708a96038d7d7921c2e9fde938c058'
+         'a6b0b9c5c7a460380a7db127e0278164'
+         '24e2a7bbc2d18fe3ec10093665cd7a6e'
+         '4a3ac992a5042fa9770cbd3fdb7e1465'
+         '715926469d05eecd345c052e6248ca32'
+         'b3db9d4fd902b62ac9e38589677e2d16')
+
 build() {
   cd ${srcdir}/splashutils-${pkgver}
 
-  # patch for building splashutils with glibc and dynamical linking
-  patch -Np0 -i ${srcdir}/fbsplash.git.patch
   autoreconf
 
   # fix fbcondecor_ctl splash type
   sed -e 's,fbsplash_lib_init(fbspl_bootup),fbsplash_lib_init(fbspl_undef),' -i src/fbcon_decor_ctl.c
 
+  # fix set_event_dev call for initcpio usage (if evdev module is there)
+  #patch -Np2 -i ${srcdir}/splash_start_initcpio.patch
+
+  export LIBS="-lbz2"
   ./configure --prefix=/usr --sysconfdir=/etc --without-klibc --enable-fbcondecor --with-gpm --with-mng --with-png --with-ttf --with-ttf-kernel
   make
 }
@@ -57,7 +68,7 @@ package() {
 
   # Install fbsplash scripts and config file
   install -D -m644 ${srcdir}/splash.conf etc/conf.d/splash
-  install -D -m744 ${srcdir}/fbsplash-basic.sh etc/rc.d/functions.d/fbsplash-basic.sh
+  install -D -m644 ${srcdir}/fbsplash-basic.sh etc/rc.d/functions.d/fbsplash-basic.sh
   install -D -m644 ${srcdir}/fbsplash.initcpio_install lib/initcpio/install/fbsplash
   install -D -m644 ${srcdir}/fbsplash.initcpio_hook lib/initcpio/hooks/fbsplash
 
@@ -65,12 +76,3 @@ package() {
   install -D -m644 ${srcdir}/fbcondecor.conf etc/conf.d/fbcondecor
   install -D -m755 ${srcdir}/fbcondecor.daemon etc/rc.d/fbcondecor
 }
-
-md5sums=('c722cd4148817b9c50381d9bdc1ea6ef'
-         '3a338c60ed0710c8b7e3e08929db521a'
-         '8f342632af1075667d6e11871a9e5d7e'
-         'e69753dac753b8ba4e2e29ef5a9c46ca'
-         'e29b3db6ee059b9950febe976a0f2881'
-         'ac2351bc918b101bb9249ce8940722be'
-         '715926469d05eecd345c052e6248ca32'
-         'b3db9d4fd902b62ac9e38589677e2d16')
diff --git a/abs/core/fbsplash/fbsplash-basic.sh b/abs/core/fbsplash/fbsplash-basic.sh
index 2834060..4403b86 100644
--- a/abs/core/fbsplash/fbsplash-basic.sh
+++ b/abs/core/fbsplash/fbsplash-basic.sh
@@ -12,18 +12,20 @@
 
 [[ $PREVLEVEL && $RUNLEVEL ]] || return 0
 
-# Do nothing if improved scripts are installed
-[ -r /etc/rc.d/functions.d/fbsplash-extras.sh ] && return
+# Do nothing if advanced script is installed
+[[ -r /etc/rc.d/functions.d/fbsplash-extras.sh ]] && return
 
 # Only do this where needed
 # Since we use BASH, all important functions and variables are exported
 case ${0#/etc/rc.} in sysinit | multi | shutdown )
-	export SPLASH_PUSH_MESSAGES="no"
-	export SPLASH_VERBOSE_ON_ERRORS="no"
+	# splash-functions.sh will run splash_setup which needs /proc
+	# code line copied from /etc/rc.sysinit
+	/bin/mountpoint -q /proc || /bin/mount -n -t proc proc /proc -o nosuid,noexec,nodev
+	export SPLASH_PUSH_MESSAGES SPLASH_VERBOSE_ON_ERRORS
 	. /sbin/splash-functions.sh # /etc/conf.d/splash is also sourced by this
 	unset options opt i # eliminate splash_setup non local vars   ## FIX ME ##
-	declare -ix SPLASH_STEPS=3 # sysinit steps
-	declare -ix SPLASH_STEPS_DONE=0
+	SPLASH_STEPS=3 # sysinit steps
+	SPLASH_STEPS_DONE=0
 esac
 
 # Verbose mode is handled by fbcondecor kernel patch and daemon script
@@ -38,8 +40,8 @@ case $0 in /etc/rc.sysinit )
 	# Prevent splash destruction
 	CONSOLEFONT=""
 	# Continue to use a splash daamon started in initcpio
-	if /bin/mountpoint -q /dev/.splash-cache; then
-		/bin/mount --move /dev/.splash-cache $spl_cachedir || return
+	if /bin/mountpoint -q /run/.splash-cache; then
+		/bin/mount --move /run/.splash-cache $spl_cachedir || return
 		splash_comm_send set message "$SPLASH_BOOT_MESSAGE"
 	# Mount a tmpfs
 	else
@@ -59,7 +61,7 @@ case $0 in /etc/rc.sysinit )
 		splash_progress
 	}
 	splash_sysinit_postfsck() { # fsck failure emergency exit
-		[ ${fsckret} -gt 1 -a ${fsckret} -ne 32 ] && chvt 1
+		(( fsckret > 1 && fsckret != 32 )) && chvt 1
 	}
 	splash_sysinit_end() {
 		splash_progress
@@ -108,19 +110,13 @@ case $0 in /etc/rc.sysinit )
 	splash_shutdown_start() {
 		splash_begin
 	}
-	## http://bugs.archlinux.org/task/10536                       ## FIX ME ##
-	splash_shutdown_prekillall() { /bin/sleep .1; }
+	splash_shutdown_prekillall() {
+		splash_comm_send progress $(( 65535*1/3 )); splash_comm_send paint
+		[[ -r $spl_pidfile ]] && add_omit_pids $( <$spl_pidfile )
+	}
 	splash_shutdown_postkillall() {
-		if [[ $( $spl_bindir/fgconsole ) = $SPLASH_TTY ]]; then
-			stat_busy "Restarting Fbsplash daemon"
-			PROGRESS=$(( 65535*2/3 )) splash_start
-			if [[ -e $spl_cachedir/stop_failed-fbsplash-dummy ]]; then
-				splash_comm_send update_svc fbsplash-dummy svc_stop_failed
-			fi
-			stat_done
-		fi
+		splash_comm_send progress $(( 65535*2/3 )); splash_comm_send paint
 	}
-	##
 	splash_shutdown_poweroff() {
 		SPLASH_EXIT_TYPE=staysilent splash_stop
 	}
@@ -131,7 +127,7 @@ splash_progress_init() {
 		case $daemon in $SPLASH_XSERVICE | @$SPLASH_XSERVICE ) break
 		;; \!* |@* ) continue
 		esac
-		SPLASH_STEPS+=1
+		(( SPLASH_STEPS++ ))
 	done
 }
 
@@ -141,7 +137,6 @@ splash_progress() {
 }
 
 # Start the splash daemon - using upstream function
-splash_set_event_dev() { :; } # override - Never grab the keyboard
 splash_begin() {
 	if ! [[ $( /bin/pidof -o %PPID $spl_daemon ) ]]; then
 		stat_busy "Starting Fbsplash daemon"
diff --git a/abs/core/fbsplash/fbsplash.git.patch b/abs/core/fbsplash/fbsplash.git.patch
deleted file mode 100644
index 15f041c..0000000
--- a/abs/core/fbsplash/fbsplash.git.patch
+++ /dev/null
@@ -1,166 +0,0 @@
-From 4ecac1b2645afc8079aad4067a1aa0e8a96eab12 Mon Sep 17 00:00:00 2001
-From: =?utf8?q?Micha=C5=82=20Januszewski?= <spock@gentoo.org>
-Date: Tue, 16 Feb 2010 23:30:18 +0100
-Subject: [PATCH] Make it possible to build fbcondecor_helper against glibc.
-
----
- configure.ac     |   34 ++++++++++++++++++++++++++++++++++
- libs/Makefile.am |    2 ++
- src/Makefile.am  |   34 +++++++++++++++++++++++++++++++++-
- 3 files changed, 69 insertions(+), 1 deletions(-)
-
-diff --git configure.ac configure.ac
-index 63b1ff6..8db1498 100644
---- configure.ac
-+++ configure.ac
-@@ -76,6 +76,23 @@ AC_ARG_ENABLE([klibc-shared],
- )
- AM_CONDITIONAL([CONFIG_KLIBC_SHARED], [test "x${config_klibc_shared}" = "xyes"])
- 
-+AC_ARG_ENABLE([static-binaries],
-+  AC_HELP_STRING([--disable-static-binaries], [do not build any statically linked binaries]),
-+  [
-+    AS_CASE(["${enableval}"],
-+      [yes], [config_static_binaries="yes"],
-+      [no],  [config_static_binaries="no"],
-+             [AC_MSG_ERROR([bad value '${enableval}' for --disable-static-binaries])]
-+    )
-+  ],
-+  [config_static_binaries="yes"]
-+)
-+AM_CONDITIONAL([CONFIG_STATIC_BINARIES], [test "x${config_static_binaries}" = "xyes"])
-+AS_IF(
-+  [test "x${config_static_binaries}" = "xyes"],
-+  [AC_DEFINE([CONFIG_STATIC_BINARIES], [1], [Define to 1 to disable building of statically linked binaries.])]
-+)
-+
- AC_ARG_ENABLE([deprecated],
-   AC_HELP_STRING([--enable-deprecated], [include support for deprecated features]),
-   [
-@@ -333,6 +350,23 @@ AC_ARG_WITH([themedir],
- )
- AC_SUBST([themedir])
- 
-+AC_ARG_WITH([klibc],
-+  AC_HELP_STRING([--without-klibc], [link the kernel helper against glibc instead of klibc]),
-+  [
-+    AS_CASE(["${withval}"],
-+      [yes], [config_klibc="yes"],
-+      [no],  [config_klibc="no"],
-+             [AC_MSG_ERROR([bad value ${withval} for --with-klibc])]
-+    )
-+  ],
-+  [config_klibc="yes"]
-+)
-+AM_CONDITIONAL([CONFIG_KLIBC], [test "x${config_klibc}" = "xyes"])
-+AS_IF(
-+  [test "x${config_klibc}" = "xyes"],
-+  [AC_DEFINE([CONFIG_KLIBC], [1], [use klibc])]
-+)
-+
- M_CFLFAGS=
- M_LIBS=
- AC_CHECK_HEADER(
-diff --git libs/Makefile.am b/core/libs/Makefile.am
-index 6675ec1..d070b29 100644
---- libs/Makefile.am
-+++ libs/Makefile.am
-@@ -24,6 +24,7 @@ mostlyclean-local: \
- 
- noinst_LIBRARIES =
- 
-+if CONFIG_KLIBC
- if CONFIG_HELPER
- noinst_LIBRARIES += libjpeg.a
- if CONFIG_PNG
-@@ -33,6 +34,7 @@ if CONFIG_TTF_KERNEL
- noinst_LIBRARIES += libfreetype.a
- endif
- endif
-+endif
- 
- libjpeg_a_SOURCES =
- libpng_a_SOURCES =
-diff --git src/Makefile.am b/core/src/Makefile.am
-index fa6919d..7570b5e 100644
---- src/Makefile.am
-+++ src/Makefile.am
-@@ -167,7 +167,6 @@ sbin_PROGRAMS += fbcondecor_ctl
- endif
- sbin_PROGRAMS += fbsplashd
- bin_PROGRAMS  += splash_util
--eexecsbin_PROGRAMS += fbsplashctl
- 
- fbcondecor_ctl_SOURCES      = fbcon_decor_ctl.c fbcon_decor.h ../include/console_decor.h ../include/fbcondecor.h common.h fbsplash.h
- fbcondecor_ctl_CPPFLAGS     = $(AM_CPPFLAGS) -DTARGET_UTIL $(libfbsplashrender_la_CFLAGS)
-@@ -185,6 +184,9 @@ splash_util_CPPFLAGS        = $(AM_CPPFLAGS) -DTARGET_UTIL $(libfbsplashrender_l
- splash_util_LDFLAGS         = $(AM_LDFLAGS)
- splash_util_LDADD           = libfbsplashrender.la libfbsplash.la
- 
-+if CONFIG_STATIC_BINARIES
-+eexecsbin_PROGRAMS += fbsplashctl
-+
- fbsplashctl_SOURCES         = $(fbsplashd_SOURCES) $(splash_util_SOURCES) fbsplashctl.c
- fbsplashctl_CFLAGS          = $(AM_CFLAGS) $(PTHREAD_STATIC_CFLAGS) $(RT_CFLAGS) $(libfbsplashrender_la_CFLAGS) -DUNIFIED_BUILD
- fbsplashctl_CPPFLAGS        = $(fbsplashd_CPPFLAGS) $(splash_util_CPPFLAGS)
-@@ -210,6 +212,7 @@ uninstall-hook:
- if CONFIG_FBCON_DECOR
- 	rm -f $(DESTDIR)$(eexecsbindir)/fbcondecor_ctl.static$(EXEEXT)
- endif
-+endif
- 
- ################################################################################
- # Kernel
-@@ -219,6 +222,7 @@ if CONFIG_HELPER
- eexecsbin_PROGRAMS  += fbcondecor_helper
- endif
- 
-+if CONFIG_KLIBC
- fbcondecor_helper_SOURCES = \
- 	kernel.c \
- 	libfbsplash.c \
-@@ -236,10 +240,12 @@ fbcondecor_helper_SOURCES = \
- 	common.h \
- 	render.h \
- 	fbsplash.h
-+
- fbcondecor_helper_CPPFLAGS  = -DWITH_ERRLIST -DTARGET_KERNEL -DTT_CONFIG_OPTION_BYTECODE_INTERPRETER
- fbcondecor_helper_CFLAGS    = -Os -w -ffunction-sections -fdata-sections -I.@am__isrc@
- fbcondecor_helper_LDFLAGS   = 
- fbcondecor_helper_LDADD     = 
-+
- fbcondecor_helper_CFLAGS   += -I$(abs_top_builddir)/libs/libjpeg -I$(LIBJPEG_SOURCE)
- fbcondecor_helper_LDADD    += $(top_builddir)/libs/libjpeg.a
- if CONFIG_PNG
-@@ -280,3 +286,29 @@ fbcondecor_helper-%.o: %.c
- 	@$(call infmsg,CC,$@)
- 	$(Q)$(MKDIR_P) $(@D)
- 	$(Q)$(KLCC) $(fbcondecor_helper_CPPFLAGS) $(fbcondecor_helper_CFLAGS) $(INCLUDES) -c $< -o $@
-+else
-+fbcondecor_helper_SOURCES = \
-+	kernel.c \
-+	libfbsplash.c \
-+	libfbsplashrender.c \
-+	fbcon_decor.c \
-+	common.c \
-+	parse.c \
-+	list.c \
-+	render.c \
-+	image.c \
-+	effects.c \
-+	fbcon_decor.h \
-+	../include/console_decor.h \
-+	../include/fbcondecor.h \
-+	common.h \
-+	render.h \
-+	fbsplash.h
-+if CONFIG_TTF_KERNEL
-+fbcondecor_helper_SOURCES  += ttf.c ttf.h
-+endif
-+fbcondecor_helper_CPPFLAGS = $(AM_CPPFLAGS) -DTARGET_KERNEL
-+fbcondecor_helper_CFLAGS   = $(AM_CFLAGS) $(libfbsplashrender_la_CFLAGS)
-+fbcondecor_helper_LDFLAGS  = $(AM_LDFLAGS)
-+fbcondecor_helper_LDADD    = $(libfbsplashrender_la_LIBADD)
-+endif
--- 
-1.6.5.GIT
diff --git a/abs/core/fbsplash/fbsplash.initcpio_hook b/abs/core/fbsplash/fbsplash.initcpio_hook
index 62048df..02617a2 100644
--- a/abs/core/fbsplash/fbsplash.initcpio_hook
+++ b/abs/core/fbsplash/fbsplash.initcpio_hook
@@ -1,99 +1,49 @@
 run_hook ()
 {
-	SPLASH_INIT_MESSAGE="Initializing the kernel"
-	SPLASH_MODE_REQ="off"
-	SPLASH_THEME="default"
-	SPLASH_TTY=16
-	SPLASH_TEXTBOX="no"
-	SPLASH_AUTOVERBOSE=0
-
-	. /etc/conf.d/splash
-
-	# Kernel parameters override config file
-	local ifs="$IFS"
-	IFS=','
-	set -- $splash
-	IFS="$ifs"
-	local arg effects
-	for arg in "$@"; do
-		case "$arg"
-		in off      ) SPLASH_MODE_REQ="off"
-		;; silent   ) SPLASH_MODE_REQ="silent"
-		;; verbose  ) SPLASH_MODE_REQ="verbose"
-		;; theme:?* ) SPLASH_THEME="${arg#theme:}"
-		;;   tty:?* ) SPLASH_TTY="${arg#tty:}"
-		;; insane   ) SPLASH_SANITY="insane"
-		;; fadein | fadeout ) effects="$effects,$arg"
-		esac
-	done
-	if [ -n "$effects" ]; then
-		SPLASH_EFFECTS="${effects#,}"
-	fi
-
-	if [ "${SPLASH_MODE_REQ}" != "silent" ]; then
-		return
-	fi
+	# avoid exporting configuration
+	(
+		SPLASH_INIT_MESSAGE="Initializing the kernel"
+		# Get configuration and functions (faking sysinit for config file hacks)
+		PREVLEVEL=N; RUNLEVEL=S
+		. /sbin/splash-functions.sh
+		unset PREVLEVEL RUNLEVEL
 
-	if ! [ "$console" = tty1 -o "$SPLASH_SANITY" = insane ]; then
-		err "Fbsplash requires console=tty1 in kernel line!"
-		return 1
-	fi
+		[ "${SPLASH_MODE_REQ}" = "silent" ] || exit 0
 
-	# Start the daemon here if possible
-	# to show animations early and gain some bootup speed
-	if [ -x /sbin/fbsplashd.static ]; then
-		if [ -x /etc/splash/"$SPLASH_THEME"/scripts/rc_init-pre ]; then
-			msg "Found '/etc/splash/$SPLASH_THEME/scripts/rc_init-pre'"
-			msg "Not starting Fbsplash daemon - no theme hook support in initcpio."
-		else
+		# Start the daemon here if possible
+		# to show animations early and gain some bootup speed
+		if [ -x "$spl_daemon" ]; then
 			msg "Starting Fbsplash Daemon"
-			(
-				set -e
-				# Hold the cache and fifo within /dev to get it moved to the new root
-				mkdir /dev/.splash-cache
-				# code line derived from splash-functions.sh
-				mount -t tmpfs cachedir /dev/.splash-cache -o rw,mode=0644,size=4096k
-				# Take over any existing cache content
-				mkdir -p /lib/splash/cache
-				mv /lib/splash/cache /lib/splash/.splash-cache
-				cp -a /lib/splash/.splash-cache /dev/
-				ln -s /dev/.splash-cache /lib/splash/cache
-				mkfifo -m 600 /lib/splash/cache/.splash
-				# Wait for any fbcondecor fadein - may take very long on some broken systems
-				i=0
-				while [ -n "$( pidof fbcondecor_helper )" ]; do
-					if [ $i -ge 50 ]; then
-						err "timeout on waiting for fbcondecor_helper to die!"
-						exit 1
-					fi
-					sleep .1
-					i=$(( i + 1 ))
-				done
-				# Actually start the daemon
-				options=""
-				[ -n "$SPLASH_THEME"      ] && options="$options --theme=$SPLASH_THEME"
-				[ -n "$SPLASH_EFFECTS"    ] && options="$options --effects=$SPLASH_EFFECTS"
-				[ "$SPLASH_TEXTBOX" = yes ] && options="$options --textbox"
-				cd /dev/.splash-cache
-				BOOT_MSG="${SPLASH_INIT_MESSAGE}" \
-					/sbin/fbsplashd.static --type=bootup --pidfile=daemon.pid $options
-				(
-					echo set tty silent $SPLASH_TTY
-					echo set mode silent
-					echo repaint
-					echo set autoverbose $SPLASH_AUTOVERBOSE
-				) >/lib/splash/cache/.splash &
-			)
-			return
+			set -e
+			# Mount the cache within /run to get it moved to the new root
+			mkdir /run/.splash-cache
+			( spl_cachedir=/run/.splash-cache; splash_cache_prep )
+			# Take over any existing cache content
+			mkdir -p $spl_cachedir
+			parent=$( dirname $spl_cachedir )
+			mv $spl_cachedir $parent/.splash-cache
+			cp -a $parent/.splash-cache /run/
+			# Symlink for starting the daemon
+			ln -s /run/.splash-cache $spl_cachedir
+			# Wait for any fbcondecor fadein - may take very long on some broken systems
+			i=0
+			while [ -n "$( pidof fbcondecor_helper )" ]; do
+				if [ $i -ge 50 ]; then
+					err "timeout on waiting for fbcondecor_helper to die!"
+					exit 1
+				fi
+				sleep .1
+				i=$(( i + 1 ))
+			done
+			# Actually start the daemon
+			cd /run/.splash-cache
+			set +e
+			SPLASH_BOOT_MESSAGE="${SPLASH_INIT_MESSAGE}"
+			splash_start && sleep .1 # allow the daemon to open the event dev
+			exit
 		fi
-	fi
 
-	# Start the fbcondecor helper if not already done by fbcondecor kernel
-	(
-		# code copied from splash-functions.sh
-		fbcondecor_supported() {
-			[ -e /dev/fbsplash -o -e /dev/fbcondecor ]
-		}
+		# Start the fbcondecor helper if not already done by fbcondecor kernel
 		if ! fbcondecor_supported; then
 			BOOT_MSG="${SPLASH_INIT_MESSAGE}" \
 				/sbin/fbcondecor_helper 2 init 0 0 $SPLASH_THEME
diff --git a/abs/core/fbsplash/fbsplash.initcpio_install b/abs/core/fbsplash/fbsplash.initcpio_install
index 4485f91..841405b 100644
--- a/abs/core/fbsplash/fbsplash.initcpio_install
+++ b/abs/core/fbsplash/fbsplash.initcpio_install
@@ -1,104 +1,95 @@
 
-install() {
-	(
-		. /etc/conf.d/splash
+build() {
+	# Add config file, splash-functions and the helper
+	add_file   /etc/conf.d/splash
+	add_file   /sbin/splash-functions.sh
+	add_binary /sbin/fbcondecor_helper
 
-		if /bin/mountpoint -q /lib/splash/cache; then
-			/bin/umount /lib/splash/cache
-		fi
-
-		# Add the helper
-		add_binary /sbin/fbcondecor_helper
-
-		# Add the daemon for early start
-		if [[ $SPLASH_DAEMON = early ]]; then
-			add_binary /sbin/fbsplashd.static
-		fi
+	# Get in configuration, parameters and functions
+	. /etc/conf.d/splash
+	. /sbin/splash-functions.sh
 
-		# Add a clean config file avoiding errors when running the hook
-		file=$( /usr/bin/mktemp )
-		for var in SPLASH_INIT_MESSAGE SPLASH_MODE_REQ SPLASH_THEME SPLASH_TTY \
-		           SPLASH_AUTOVERBOSE SPLASH_EFFECTS SPLASH_TEXTBOX
-		do
-			eval value=\"\$$var\"
-			[ -n "$value" ] && echo $var="'$value'"
-		done >|$file
-		add_file $file /etc/conf.d/splash
+	# Unmount any stale cache tmpfs
+	splash_cache_cleanup
 
-		# List file paths contained in given Fbsplash theme cfg file
-		_get_cfg_files() {
-			< "$1" /bin/sed -re '
-				# convert all whitespace into single blanks
-				s,[[:space:]]+, ,g ; t L1
-				:L1
-				# drop comments, grouping directives and blank lines
-				/^ *([#<]|$)/ d
-				# get a filepath or drop
-				s,.*[ =]([^ ]*/[^ ]+).*,\1, ; t ; d
-			' | /usr/bin/sort -u
-		}
+	SPLASH_PROFILE=off
 
-		# Check if cfg file name or path
-		_match_cfg() {
-			[[ "$1" =~ (^|/)[0-9]+x[0-9]+\.cfg$ ]]
-		}
+	if [[ $SPLASH_DAEMON = early ]]; then
+		# Add stuff needed to run splash_start function (except optional evdev module)
+		add_dir    $spl_tmpdir
+		add_binary $spl_daemon
+		if [[ -e /etc/rc.d/functions.d/fbsplash-extras.sh ]]; then
+			. /etc/rc.d/functions.d/fbsplash-extras.sh
+			# Add files from a prepared cache (faking sysinit)
+			splash_cache_prep_initcpio && add_full_dir $spl_cachedir
+		fi
+	fi
 
-		# Add non-cfg files in given dir
-		_add_non_cfg_files() {
-			local file dir="$1"
-			for file in $( /bin/ls "$dir" ); do
-				if [ -f "$dir/$file" ]; then
-					_match_cfg "$file" || add_file "$dir/$file"
-				fi
-			done
-		}
+	# List file paths contained in given Fbsplash theme cfg files
+	# (Only file paths containing at least one slash will be found by this.)
+	fbsplash_list_paths() {
+		(( $# )) || return 0
+		/bin/sed -re '
+			# convert all whitespace into single blanks
+			s,[[:space:]]+, ,g ; t L1
+			:L1
+			# drop comments, grouping directives and blank lines
+			/^ *([#<]|$)/ d
+			# get a filepath or drop
+			s,.*[ =]([^ ]*/[^ ]+).*,\1, ; t ; d
+		' "$@" | /usr/bin/sort -u
+	}
 
-		# Add global non-cfg files
-		_add_non_cfg_files /etc/splash
+	# Check if arg is a theme cfg file path
+	fbsplash_is_cfg() {
+		[[ $1 =~ ^/etc/splash/[^/]+/[0-9]+x[0-9]+\.cfg$ ]]
+	}
 
-		# Add themes
-		dirs=""
-		for theme in ${SPLASH_THEMES[*]}; do # string list and array allowed
-			[ ${theme:0:1} = / ] || theme=/etc/splash/$theme
-			if [ -f $theme ]; then
-				if ! _match_cfg $theme; then
-					err "Not a valid theme cfg file name: $theme"
-					continue
-				fi
-				add_file $theme || continue
-				dir=$( dirname $theme )
-				# Add non-cfg files in theme dir
-				_add_non_cfg_files $dir
-				# Add files refered in cfg file by paths
-				for file in $( _get_cfg_files $theme ); do
-					if [ ${file:0:1} = / ]; then
-						add_file $file
-						continue
-					fi
-					# Path may be relative to theme-dir or to /etc/splash
-					[ -e $dir/$file -o ! -f /etc/splash/$file ] && add_file $dir/$file
-					[ -e /etc/splash/$file -o ! -f $dir/$file ] && add_file /etc/splash/$file
+	# Add all files referenced by path in given theme cfg files
+	# args: <theme-root-dir> <cfg-file>...
+	fbsplash_add_files_from_cfgs() {
+		local file theme_dir=$1; shift
+		while read file; do
+			if [[ $file == /* ]]; then
+				add_file $file
+			else # Path may be relative to /etc/splash or theme-dir
+				local found=0
+				for file in /etc/splash/$file "$theme_dir"/$file; do
+					[[ -f $file ]] && { add_file $file; found=1; }
 				done
-			elif [ -d $theme ]; then
-				dir=$theme
-				add_full_dir $dir
-			else
-				err "Theme not found: $theme"
-				continue
-			fi
-			if [[ " "$dirs" " != *" "$dir" "* ]]; then
-				dirs+=" "$dir
+				(( found )) || error "Theme '${theme_dir##*/}': File not found: '$file'"
 			fi
-		done
-		for dir in $dirs; do
-			# Add the rc_init-pre script if we have one
-			# Currently this just prevents early daemon start for the theme
-			if [[ $SPLASH_DAEMON = early && -x $dir/scripts/rc_init-pre ]]; then
-				add_file $dir/scripts/rc_init-pre || continue
-				echo "WARNING: rc_init-pre script found - no early daemon with '${dir##*/}'!" >&2
-			fi
-		done
-	)
+		done < <( fbsplash_list_paths "$@" )
+	}
+
+	# Add common files (may be referenced in cfg by plain file name)
+	local file
+	for file in /etc/splash/*; do
+		[[ -f $file ]] && add_file "$file"
+	done
+
+	# Add themes
+	local file theme
+	for theme in $SPLASH_THEMES; do
+		if [[ -d /etc/splash/$theme && $theme != */* ]]; then
+			add_full_dir /etc/splash/$theme
+			local files=()
+			for file in /etc/splash/$theme/*.cfg; do
+				[[ -f $file ]] && fbsplash_is_cfg "$file" && files+=( $file )
+			done
+			fbsplash_add_files_from_cfgs /etc/splash/$theme "${files[@]}"
+		elif [[ -f /etc/splash/$theme ]] && fbsplash_is_cfg /etc/splash/$theme; then
+			file=/etc/splash/$theme; theme=${theme%/*}
+			add_file $file
+			fbsplash_add_files_from_cfgs /etc/splash/$theme $file
+			# Add all non-cfg files from theme dir (may be referenced by plain file name)
+			for file in /etc/splash/$theme/*; do
+				[[ -f $file ]] && ! fbsplash_is_cfg "$file" && add_file "$file"
+			done
+		else
+			error "Theme invalid or not found: '$theme'"
+		fi
+	done
 
 	SCRIPT="fbsplash"
 }
@@ -106,8 +97,7 @@ install() {
 help() {
 cat<<HELPEOF
   This hook adds the FBconDecor helper and Fbsplash themes and maybe the
-  Fbsplash daemon as specified in /etc/conf.d/splash. Put it after udev
-  for early daemon start or when using a FBconDecor kernel.
+  Fbsplash daemon as specified in /etc/conf.d/splash.
 HELPEOF
 }
 
diff --git a/abs/core/fbsplash/splash.conf b/abs/core/fbsplash/splash.conf
index 5360792..8eb3a44 100644
--- a/abs/core/fbsplash/splash.conf
+++ b/abs/core/fbsplash/splash.conf
@@ -2,15 +2,21 @@
 # /etc/conf.d/splash
 #
 
+####  WARNING!
+## This file is also sourced in the initcpio hook.
+## No BASH-code (like arrays) is allowed here!
+
 ####  initcpio and Fbsplash daemon  ##########################################
 
 ## Themes to include into initcpio
 ## For a smaller initcpio you may try theme cfg files instead of directories.
-SPLASH_THEMES=(
-    linhes
-    linhes/1024x768.cfg
-    linhes/800x600.cfg
-)
+SPLASH_THEMES="
+    arch-black
+    arch-banner-icons/1024x768.cfg
+    arch-banner-icons/1280x800.cfg
+    arch-banner-noicons/1024x768.cfg
+    arch-banner-noicons/1280x800.cfg
+"
 
 ## Override the initial silent splash screen status message defaults.
 ## Note: '$progress' will be replaced by Fbsplash itself.
@@ -23,16 +29,21 @@ SPLASH_REBOOT_MESSAGE="Rebooting '$HOSTNAME' (\$progress%)"
 ## * shutdown
 SPLASH_SHUTDOWN_MESSAGE="Shutting down '$HOSTNAME' (\$progress%)"
 
-## To show animations early, include the Fbsplash daemon (1.5 MiB) into initcpio, too,
+## Include and use the Fbsplash daemon (1.5 MiB) in the initcpio
 ## instead of the small helper only.
-## Note: Themes with 'scripts/rc_init-pre' like 'arch-banner-icons' are not supported.
+## Usefull to show animations early.
+## Note: Themes with 'scripts/rc_init-pre' like 'arch-banner-icons' are
+##       supported now if fbsplash-extras>=2.0.10 is installed, but there
+##       might still be some sophisticated ones which break when using this.
 SPLASH_DAEMON="early"
 
 ## Make the splash daemon use fade effects.
 ## Note: The initcpio helper does only use the kernel parameter!
+# Just use fadein on bootup and fadeout on shutdown/reboot
+case $PREVLEVEL in  N   ) SPLASH_EFFECTS="fadein" ; esac
+case  $RUNLEVEL in [06] ) SPLASH_EFFECTS="fadeout"; esac
+# Uncomment this line to allways use both
 # SPLASH_EFFECTS="fadein,fadeout"
-## Uggly hack to get that in from the kernel line :p
-SPLASH_EFFECTS=$(e=();IFS=',';for w in $splash;do [[ $w == fade* ]]&&e+=($w);done;echo "${e[*]}")
 
 ## Enable the textbox when starting the Fbsplash daemon.
 ## Useful if the theme provides a message log or other textbox.
@@ -52,7 +63,7 @@ SPLASH_AUTOVERBOSE=0
 SPLASH_VERBOSE_ON_ERRORS="no"
 
 ## Name of the DAEMONS script starting Xorg if any
-## Set this to avoid virtual terminal change struggle between Xorg and Fbsplash.
+## Set this to avoid virtual terminal change struggle between X and Fbsplash.
 SPLASH_XSERVICE="gdm"
 #SPLASH_XSERVICE="kdm"
 #SPLASH_XSERVICE="xdm"
diff --git a/abs/core/fbsplash/splash_start_initcpio.patch b/abs/core/fbsplash/splash_start_initcpio.patch
new file mode 100644
index 0000000..ff4ae96
--- /dev/null
+++ b/abs/core/fbsplash/splash_start_initcpio.patch
@@ -0,0 +1,22 @@
+diff -ru src.orig//splashutils-1.5.4.3/scripts/splash-functions.sh.in src//splashutils-1.5.4.3/scripts/splash-functions.sh.in
+--- src.orig//splashutils-1.5.4.3/scripts/splash-functions.sh.in	2008-11-13 20:54:19.000000000 +0100
++++ src//splashutils-1.5.4.3/scripts/splash-functions.sh.in	2011-03-03 09:45:29.258901793 +0100
+@@ -250,6 +250,9 @@
+ 	# Start the splash daemon
+ 	BOOT_MSG="$(splash_get_boot_message)" ${spl_daemon} --theme="${SPLASH_THEME}" --pidfile="${spl_pidfile}" --type=${ttype} ${options}
+
++	# First let the daemon open the event dev before it's gone away in case this is run in the initcpio
++	splash_set_event_dev
++
+ 	# Set the silent TTY and boot message
+ 	splash_comm_send "set tty silent ${SPLASH_TTY}"
+
+@@ -261,8 +264,6 @@
+
+ 	splash_comm_send "set autoverbose ${SPLASH_AUTOVERBOSE}"
+
+-	splash_set_event_dev
+-
+ 	return 0
+ }
+
-- 
cgit v0.12


From f514b16b0faa7487af9b6e3fecc5b1c8b0955b6e Mon Sep 17 00:00:00 2001
From: Cecil <knoppmyth@gmail.com>
Date: Sat, 24 Sep 2011 00:20:36 -0700
Subject: mkinitcpio:Added fbsplash hook.

---
 abs/core/mkinitcpio/PKGBUILD              | 4 ++--
 abs/core/mkinitcpio/mkinitcpio.conf.patch | 2 +-
 2 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/abs/core/mkinitcpio/PKGBUILD b/abs/core/mkinitcpio/PKGBUILD
index 6e4eb3f..0631650 100644
--- a/abs/core/mkinitcpio/PKGBUILD
+++ b/abs/core/mkinitcpio/PKGBUILD
@@ -3,7 +3,7 @@
 
 pkgname=mkinitcpio
 pkgver=0.7.2
-pkgrel=10
+pkgrel=11
 pkgdesc="Modular initramfs image creation utility"
 arch=(any)
 url="http://www.archlinux.org/"
@@ -26,4 +26,4 @@ package() {
   make DESTDIR="${pkgdir}" install
 }
 md5sums=('e11670a7d4802b2ef20cab4b3815168a'
-         '30cbb2840012223f056386d8a3336a2e')
+         '36da3320c907bf3b41b74fc824cbd1d8')
diff --git a/abs/core/mkinitcpio/mkinitcpio.conf.patch b/abs/core/mkinitcpio/mkinitcpio.conf.patch
index 41d0ed9..800b347 100644
--- a/abs/core/mkinitcpio/mkinitcpio.conf.patch
+++ b/abs/core/mkinitcpio/mkinitcpio.conf.patch
@@ -14,7 +14,7 @@
  ##   This setup loads an lvm2 volume group on a usb device.
  #    HOOKS="base udev usb lvm2 filesystems"
 -HOOKS="base udev autodetect pata scsi sata filesystems usbinput"
-+HOOKS="base udev usb net autodetect pata scsi sata filesystems usbinput"
++HOOKS="base udev usb net autodetect pata scsi sata filesystems usbinput fbsplash"
  
  # COMPRESSION
  # Use this to compress the initramfs image. With kernels earlier than
-- 
cgit v0.12


From 6cd4eb30283496ab8d844f95082bba7c4e544c3c Mon Sep 17 00:00:00 2001
From: Cecil <knoppmyth@gmail.com>
Date: Sat, 24 Sep 2011 00:47:03 -0700
Subject: fbsplash:Default theme set to LinHES.

---
 abs/core/fbsplash/PKGBUILD    | 18 +++++++++---------
 abs/core/fbsplash/splash.conf |  8 ++------
 2 files changed, 11 insertions(+), 15 deletions(-)

diff --git a/abs/core/fbsplash/PKGBUILD b/abs/core/fbsplash/PKGBUILD
index 49725d4..dda0dd4 100644
--- a/abs/core/fbsplash/PKGBUILD
+++ b/abs/core/fbsplash/PKGBUILD
@@ -3,7 +3,7 @@
 
 pkgname=fbsplash
 pkgver=1.5.4.4
-pkgrel=7
+pkgrel=8
 pkgdesc="A userspace implementation of a splash screen for Linux (formerly known as gensplash)"
 arch=('i686' 'x86_64')
 url="http://fbsplash.berlios.de"
@@ -25,14 +25,6 @@ source=(http://download.berlios.de/fbsplash/splashutils-${pkgver}.tar.bz2
         fbsplash.initcpio_hook
         fbcondecor.daemon
         fbcondecor.conf)
-md5sums=('2a16704c4adde97b58812cd89e3f2342'
-         '4045e315c52f5a576fca4f7e634eeb91'
-         '90708a96038d7d7921c2e9fde938c058'
-         'a6b0b9c5c7a460380a7db127e0278164'
-         '24e2a7bbc2d18fe3ec10093665cd7a6e'
-         '4a3ac992a5042fa9770cbd3fdb7e1465'
-         '715926469d05eecd345c052e6248ca32'
-         'b3db9d4fd902b62ac9e38589677e2d16')
 
 build() {
   cd ${srcdir}/splashutils-${pkgver}
@@ -76,3 +68,11 @@ package() {
   install -D -m644 ${srcdir}/fbcondecor.conf etc/conf.d/fbcondecor
   install -D -m755 ${srcdir}/fbcondecor.daemon etc/rc.d/fbcondecor
 }
+md5sums=('2a16704c4adde97b58812cd89e3f2342'
+         '4045e315c52f5a576fca4f7e634eeb91'
+         '83f7b36399e8e3b24e18de670280be1d'
+         'a6b0b9c5c7a460380a7db127e0278164'
+         '24e2a7bbc2d18fe3ec10093665cd7a6e'
+         '4a3ac992a5042fa9770cbd3fdb7e1465'
+         '715926469d05eecd345c052e6248ca32'
+         'b3db9d4fd902b62ac9e38589677e2d16')
diff --git a/abs/core/fbsplash/splash.conf b/abs/core/fbsplash/splash.conf
index 8eb3a44..57e6e85 100644
--- a/abs/core/fbsplash/splash.conf
+++ b/abs/core/fbsplash/splash.conf
@@ -11,11 +11,7 @@
 ## Themes to include into initcpio
 ## For a smaller initcpio you may try theme cfg files instead of directories.
 SPLASH_THEMES="
-    arch-black
-    arch-banner-icons/1024x768.cfg
-    arch-banner-icons/1280x800.cfg
-    arch-banner-noicons/1024x768.cfg
-    arch-banner-noicons/1280x800.cfg
+    linhes
 "
 
 ## Override the initial silent splash screen status message defaults.
@@ -64,7 +60,7 @@ SPLASH_VERBOSE_ON_ERRORS="no"
 
 ## Name of the DAEMONS script starting Xorg if any
 ## Set this to avoid virtual terminal change struggle between X and Fbsplash.
-SPLASH_XSERVICE="gdm"
+#SPLASH_XSERVICE="gdm"
 #SPLASH_XSERVICE="kdm"
 #SPLASH_XSERVICE="xdm"
 #SPLASH_XSERVICE="lxdm"
-- 
cgit v0.12


From b9a07427a9567a8a0170724fba030c13e5114d20 Mon Sep 17 00:00:00 2001
From: Britney Fransen <brfransen@gmail.com>
Date: Sat, 24 Sep 2011 12:10:41 -0500
Subject: libxml2: recompile to fix version warning

---
 abs/core/libxml2/PKGBUILD                         | 20 ++++++++++++--------
 abs/core/libxml2/shared_library_versionning.patch | 21 +++++++++++++++++++++
 2 files changed, 33 insertions(+), 8 deletions(-)
 create mode 100644 abs/core/libxml2/shared_library_versionning.patch

diff --git a/abs/core/libxml2/PKGBUILD b/abs/core/libxml2/PKGBUILD
index 55adfb7..2566d0e 100644
--- a/abs/core/libxml2/PKGBUILD
+++ b/abs/core/libxml2/PKGBUILD
@@ -1,32 +1,36 @@
-# $Id: PKGBUILD 87702 2010-08-18 01:57:53Z allan $
+# $Id$
 # Maintainer: Jan de Groot <jgc@archlinux.org>
 # Contributor: John Proctor <jproctor@prium.net>
 
 pkgname=libxml2
 pkgver=2.7.8
-pkgrel=3
+pkgrel=4
 pkgdesc="XML parsing library, version 2"
-arch=('i686' 'x86_64')
+arch=(i686 x86_64)
 license=('custom')
 depends=('zlib>=1.2.4' 'readline>=6.1' 'ncurses>=5.7')
 makedepends=('python2')
 options=('!libtool')
 url="http://www.xmlsoft.org/"
 source=(ftp://ftp.xmlsoft.org/${pkgname}/${pkgname}-${pkgver}.tar.gz
-        largefile64.patch)
+        largefile64.patch shared_library_versionning.patch)
+md5sums=('8127a65e8c3b08856093099b52599c86'
+         '5ad4915665608ebfa5b89f7908467a72'
+         '84aeb7c6db023eae044e95d9211dba53')
 
 build() {
   cd "${srcdir}/${pkgname}-${pkgver}"
   patch -Np1 -i "${srcdir}/largefile64.patch"
+  patch -Np1 -i "${srcdir}/shared_library_versionning.patch"
+  autoreconf -fi
   ./configure --prefix=/usr --with-threads --with-history \
      --with-python=/usr/bin/python2.7
-  make || return 1
+  make
 }
 
 package() {
   cd "${srcdir}/${pkgname}-${pkgver}"
-  make DESTDIR="${pkgdir}" install || return 1
+  make DESTDIR="${pkgdir}" install
   install -Dm644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/COPYING"
 }
-md5sums=('8127a65e8c3b08856093099b52599c86'
-         '5ad4915665608ebfa5b89f7908467a72')
+
diff --git a/abs/core/libxml2/shared_library_versionning.patch b/abs/core/libxml2/shared_library_versionning.patch
new file mode 100644
index 0000000..a0b62bc
--- /dev/null
+++ b/abs/core/libxml2/shared_library_versionning.patch
@@ -0,0 +1,21 @@
+From 00819877651b87842ed878898ba17dba489820f0 Mon Sep 17 00:00:00 2001
+From: Daniel Veillard <veillard@redhat.com>
+Date: Thu, 04 Nov 2010 20:53:14 +0000
+Subject: Reactivate the shared library versionning script
+
+---
+diff --git a/configure.in b/configure.in
+index 59d0629..a1d2c89 100644
+--- a/configure.in
++++ b/configure.in
+@@ -84,7 +84,7 @@ else
+   esac
+ fi
+ AC_SUBST(VERSION_SCRIPT_FLAGS)
+-AM_CONDITIONAL([USE_VERSION_SCRIPT], [test -z "$VERSION_SCRIPT_FLAGS"])
++AM_CONDITIONAL([USE_VERSION_SCRIPT], [test -n "$VERSION_SCRIPT_FLAGS"])
+ 
+ dnl
+ dnl We process the AC_ARG_WITH first so that later we can modify
+--
+cgit v0.8.3.1
-- 
cgit v0.12


From d85a54be874d653f47ab9c20d01b69e820b368db Mon Sep 17 00:00:00 2001
From: Britney Fransen <brfransen@gmail.com>
Date: Sat, 1 Oct 2011 11:39:33 -0500
Subject: files that I forgot to add to to git.

---
 abs/core/lvm2/11-dm-initramfs.rules |  3 ++
 abs/core/qt/qtbug-16292.patch       | 62 +++++++++++++++++++++++++++++++++++++
 abs/extra/help2man/help2man.install | 18 +++++++++++
 abs/extra/htop/htop.c.patch         | 15 +++++++++
 4 files changed, 98 insertions(+)
 create mode 100644 abs/core/lvm2/11-dm-initramfs.rules
 create mode 100644 abs/core/qt/qtbug-16292.patch
 create mode 100644 abs/extra/help2man/help2man.install
 create mode 100644 abs/extra/htop/htop.c.patch

diff --git a/abs/core/lvm2/11-dm-initramfs.rules b/abs/core/lvm2/11-dm-initramfs.rules
new file mode 100644
index 0000000..d2c1673
--- /dev/null
+++ b/abs/core/lvm2/11-dm-initramfs.rules
@@ -0,0 +1,3 @@
+# needed with new udev/mkinitcpio and as implemented in dracut:
+# <http://git.kernel.org/?p=boot/dracut/dracut.git;a=commitdiff;h=12b9736228f2b34c15a9cb63be79cf7b6e865b54>
+SUBSYSTEM=="block", KERNEL=="dm-[0-9]*", ACTION=="add|change", OPTIONS="db_persist"
diff --git a/abs/core/qt/qtbug-16292.patch b/abs/core/qt/qtbug-16292.patch
new file mode 100644
index 0000000..9728e28
--- /dev/null
+++ b/abs/core/qt/qtbug-16292.patch
@@ -0,0 +1,62 @@
+From e340844bd614add505a39a3a6b915632476f6305 Mon Sep 17 00:00:00 2001
+From: Gabriel de Dietrich <gabriel.dietrich-de@nokia.com>
+Date: Tue, 15 Feb 2011 11:19:26 +0100
+Subject: [PATCH] Fix crash in KPackageKit
+
+QTreeViewPrivate::itemHeight() may refer to an invalid QModelIndex
+after calling QTreeView::indexRowSizeHint().
+
+Same thing inside QTreeView::indexRowSizeHint(), since
+QHeaderView::count() will call
+QAbstractItemViewPrivate::executePostedLayout() which may invalidate
+all the QModelIndex.
+
+Reviewed-by: Olivier
+Task-number: QTBUG-16292
+---
+ src/gui/itemviews/qtreeview.cpp |   11 ++++++-----
+ 1 files changed, 6 insertions(+), 5 deletions(-)
+
+diff --git a/src/gui/itemviews/qtreeview.cpp b/src/gui/itemviews/qtreeview.cpp
+index f1f3236..c0573bb 100644
+--- a/src/gui/itemviews/qtreeview.cpp
++++ b/src/gui/itemviews/qtreeview.cpp
+@@ -2753,6 +2753,7 @@ int QTreeView::indexRowSizeHint(const QModelIndex &index) const
+ 
+     int start = -1;
+     int end = -1;
++    int indexRow = index.row();
+     int count = d->header->count();
+     bool emptyHeader = (count == 0);
+     QModelIndex parent = index.parent();
+@@ -2789,7 +2790,7 @@ int QTreeView::indexRowSizeHint(const QModelIndex &index) const
+         int logicalColumn = emptyHeader ? column : d->header->logicalIndex(column);
+         if (d->header->isSectionHidden(logicalColumn))
+             continue;
+-        QModelIndex idx = d->model->index(index.row(), logicalColumn, parent);
++        QModelIndex idx = d->model->index(indexRow, logicalColumn, parent);
+         if (idx.isValid()) {
+             QWidget *editor = d->editorForIndex(idx).editor;
+             if (editor && d->persistent.contains(editor)) {
+@@ -3224,14 +3225,14 @@ int QTreeViewPrivate::itemHeight(int item) const
+     if (viewItems.isEmpty())
+         return 0;
+     const QModelIndex &index = viewItems.at(item).index;
++    if (!index.isValid())
++        return 0;
+     int height = viewItems.at(item).height;
+-    if (height <= 0 && index.isValid()) {
++    if (height <= 0) {
+         height = q_func()->indexRowSizeHint(index);
+         viewItems[item].height = height;
+     }
+-    if (!index.isValid() || height < 0)
+-        return 0;
+-    return height;
++    return qMax(height, 0);
+ }
+ 
+ 
+-- 
+1.6.1
+
diff --git a/abs/extra/help2man/help2man.install b/abs/extra/help2man/help2man.install
new file mode 100644
index 0000000..ab6585b
--- /dev/null
+++ b/abs/extra/help2man/help2man.install
@@ -0,0 +1,18 @@
+info_dir=/usr/share/info
+info_files=(help2man.info)
+
+post_install() {
+  for f in ${info_files[@]}; do
+    install-info ${info_dir}/$f.gz ${info_dir}/dir 2> /dev/null
+  done
+}
+
+post_upgrade() {
+  post_install $1
+}
+
+pre_remove() {
+  for f in ${info_files[@]}; do
+    install-info --delete ${info_dir}/$f.gz ${info_dir}/dir 2> /dev/null
+  done
+}
diff --git a/abs/extra/htop/htop.c.patch b/abs/extra/htop/htop.c.patch
new file mode 100644
index 0000000..41a2dd3
--- /dev/null
+++ b/abs/extra/htop/htop.c.patch
@@ -0,0 +1,15 @@
+From: Roman Kosenko <madkite@gmail.com>
+Date: Thu, 10 Mar 2011 16:23:53 +0200
+Subject: [PATCH] Fix stupid bug with --sort-key
+
+--- htop.c.old	2010-11-24 20:45:38.000000000 +0200
++++ htop.c	2011-03-10 16:32:18.473716667 +0200
+@@ -282,7 +282,7 @@
+             printVersionFlag();
+             break;
+          case 's':
+-            if (strcmp(optarg, "help")) {
++            if (!strcmp(optarg, "help")) {
+                for (int j = 1; j < LAST_PROCESSFIELD; j++)
+                   printf ("%s\n", Process_fieldNames[j]);
+                exit(0);
-- 
cgit v0.12


From 3735849e4bd7a3fe9e46c2069dbf65acd838c2a7 Mon Sep 17 00:00:00 2001
From: Britney Fransen <brfransen@gmail.com>
Date: Thu, 6 Oct 2011 16:27:09 -0500
Subject: fbsplash: remove progress from splash messages

---
 abs/core/fbsplash/PKGBUILD    |  4 ++--
 abs/core/fbsplash/splash.conf | 12 ++++++------
 2 files changed, 8 insertions(+), 8 deletions(-)

diff --git a/abs/core/fbsplash/PKGBUILD b/abs/core/fbsplash/PKGBUILD
index dda0dd4..fab0d28 100644
--- a/abs/core/fbsplash/PKGBUILD
+++ b/abs/core/fbsplash/PKGBUILD
@@ -3,7 +3,7 @@
 
 pkgname=fbsplash
 pkgver=1.5.4.4
-pkgrel=8
+pkgrel=9
 pkgdesc="A userspace implementation of a splash screen for Linux (formerly known as gensplash)"
 arch=('i686' 'x86_64')
 url="http://fbsplash.berlios.de"
@@ -70,7 +70,7 @@ package() {
 }
 md5sums=('2a16704c4adde97b58812cd89e3f2342'
          '4045e315c52f5a576fca4f7e634eeb91'
-         '83f7b36399e8e3b24e18de670280be1d'
+         'c39f865e75192745759c8e95c7a7fd06'
          'a6b0b9c5c7a460380a7db127e0278164'
          '24e2a7bbc2d18fe3ec10093665cd7a6e'
          '4a3ac992a5042fa9770cbd3fdb7e1465'
diff --git a/abs/core/fbsplash/splash.conf b/abs/core/fbsplash/splash.conf
index 57e6e85..44fed88 100644
--- a/abs/core/fbsplash/splash.conf
+++ b/abs/core/fbsplash/splash.conf
@@ -17,13 +17,13 @@ SPLASH_THEMES="
 ## Override the initial silent splash screen status message defaults.
 ## Note: '$progress' will be replaced by Fbsplash itself.
 ## * initcpio - (no effect with fbcondecor kernel)
-SPLASH_INIT_MESSAGE="Initializing the kernel"
+SPLASH_INIT_MESSAGE="Initializing the kernel..."
 ## * bootup
-SPLASH_BOOT_MESSAGE="Booting '$HOSTNAME' (\$progress%)"
+SPLASH_BOOT_MESSAGE="Booting $HOSTNAME..."
 ## * reboot
-SPLASH_REBOOT_MESSAGE="Rebooting '$HOSTNAME' (\$progress%)"
+SPLASH_REBOOT_MESSAGE="Rebooting $HOSTNAME..."
 ## * shutdown
-SPLASH_SHUTDOWN_MESSAGE="Shutting down '$HOSTNAME' (\$progress%)"
+SPLASH_SHUTDOWN_MESSAGE="Shutting down $HOSTNAME..."
 
 ## Include and use the Fbsplash daemon (1.5 MiB) in the initcpio
 ## instead of the small helper only.
@@ -36,8 +36,8 @@ SPLASH_DAEMON="early"
 ## Make the splash daemon use fade effects.
 ## Note: The initcpio helper does only use the kernel parameter!
 # Just use fadein on bootup and fadeout on shutdown/reboot
-case $PREVLEVEL in  N   ) SPLASH_EFFECTS="fadein" ; esac
-case  $RUNLEVEL in [06] ) SPLASH_EFFECTS="fadeout"; esac
+#case $PREVLEVEL in  N   ) SPLASH_EFFECTS="fadein" ; esac
+#case  $RUNLEVEL in [06] ) SPLASH_EFFECTS="fadeout"; esac
 # Uncomment this line to allways use both
 # SPLASH_EFFECTS="fadein,fadeout"
 
-- 
cgit v0.12


From 81f6e0d44f1f03250fbda0217bfaba88fe55ac3f Mon Sep 17 00:00:00 2001
From: Britney Fransen <brfransen@gmail.com>
Date: Thu, 6 Oct 2011 16:40:08 -0500
Subject: linhes-splash: remove progress bar and change console size

---
 abs/core/linhes-splash/PKGBUILD              |   4 ++--
 abs/core/linhes-splash/__changelog           |   1 -
 abs/core/linhes-splash/linhes-splash.tar.bz2 | Bin 871971 -> 871816 bytes
 3 files changed, 2 insertions(+), 3 deletions(-)
 delete mode 100644 abs/core/linhes-splash/__changelog

diff --git a/abs/core/linhes-splash/PKGBUILD b/abs/core/linhes-splash/PKGBUILD
index de73d50..1bb7519 100644
--- a/abs/core/linhes-splash/PKGBUILD
+++ b/abs/core/linhes-splash/PKGBUILD
@@ -3,7 +3,7 @@
 
 pkgname=linhes-splash
 pkgver=1
-pkgrel=8
+pkgrel=9
 pkgdesc="FBSplash theme for LinHES."
 arch=('i686' 'x86_64')
 license=('GPL2')
@@ -28,4 +28,4 @@ build() {
 #	  fi
 #  done
 }
-md5sums=('9b1f58dad581187ff080097f5fa1ae1c')
+md5sums=('10c26a030db0fab8dea7574ee00f3516')
diff --git a/abs/core/linhes-splash/__changelog b/abs/core/linhes-splash/__changelog
deleted file mode 100644
index 886928e..0000000
--- a/abs/core/linhes-splash/__changelog
+++ /dev/null
@@ -1 +0,0 @@
-changed 800x600.cfg. Moved the box down and made the font bigger
diff --git a/abs/core/linhes-splash/linhes-splash.tar.bz2 b/abs/core/linhes-splash/linhes-splash.tar.bz2
index 9d52a1e..616f460 100644
Binary files a/abs/core/linhes-splash/linhes-splash.tar.bz2 and b/abs/core/linhes-splash/linhes-splash.tar.bz2 differ
-- 
cgit v0.12


From fc7b12c545c7ecf66df1e7113f59dcf2fea0c2de Mon Sep 17 00:00:00 2001
From: Britney Fransen <brfransen@gmail.com>
Date: Thu, 6 Oct 2011 17:02:37 -0500
Subject: runit-scripts: fbsplash-runit.sh: update for new fbsplash

---
 abs/core/runit-scripts/PKGBUILD          |  4 +--
 abs/core/runit-scripts/fbsplash-runit.sh | 55 ++++++++++++++------------------
 2 files changed, 26 insertions(+), 33 deletions(-)

diff --git a/abs/core/runit-scripts/PKGBUILD b/abs/core/runit-scripts/PKGBUILD
index ee88800..c505356 100755
--- a/abs/core/runit-scripts/PKGBUILD
+++ b/abs/core/runit-scripts/PKGBUILD
@@ -1,6 +1,6 @@
 pkgname=runit-scripts
 pkgver=2.1.1
-pkgrel=33
+pkgrel=34
 pkgdesc="collection of startup scripts for runit"
 url="http://smarden.org/runit/"
 license="BSD"
@@ -27,4 +27,4 @@ build() {
   install -m0755 reboot-runit halt-runit logger $startdir/pkg/sbin
   rsync -a --exclude=.svn services/* $startdir/pkg/etc/sv
 }
-md5sums=('45d0b0c6ad9b00eeaaef3341245a8d4c')
+md5sums=('c79246677d5ffe687bcf6df1b9c2abc2')
diff --git a/abs/core/runit-scripts/fbsplash-runit.sh b/abs/core/runit-scripts/fbsplash-runit.sh
index a9432d0..87435ee 100755
--- a/abs/core/runit-scripts/fbsplash-runit.sh
+++ b/abs/core/runit-scripts/fbsplash-runit.sh
@@ -1,44 +1,37 @@
-# fbsplash function.d script #
-# Author: Greg Helton <gt@fallendusk.org> #
+# fbsplash functions.d runit script #
 
-# Who is calling? #
-CALLER=$0
 printhlr() {
                printf "${C_OTHER}${PREFIX_REG} ${C_H1}${1}${C_CLEAR} \n"
            }
 
+stat_runit(){
+	printf ""
+	printhlr "${C_MAIN}${1}${C_CLEAR} "
+}
+
+
 # splash stuff #
-if [ -e /etc/conf.d/fbsplash.conf ]
+if [ -e /etc/conf.d/fbcondecor ]
 then
-	. /etc/conf.d/fbsplash.conf
+	. /etc/conf.d/fbcondecor
 	. /sbin/splash-functions.sh
 
-# Redefine the stat functions #
-
-	stat_runit() {
-	#	printf "${C_OTHER}${PREFIX_REG} ${C_MAIN}${1}${C_CLEAR} "
-	#	printf "${SAVE_POSITION}"
-	 #	deltext
-	#	printf "   ${C_OTHER}[${C_BUSY}BKGD${C_OTHER}]${C_CLEAR} "a
-
-		 printf ""
-                 printhlr "${C_MAIN}${1}${C_CLEAR} "
-
-	        # Load variables #
+	case $0 in /etc/runit/1 )
+		# Prevent splash destruction
+		CONSOLEFONT=""
+		# Continue to use a splash daemon started in initcpio
+		if /bin/mountpoint -q /run/.splash-cache; then
+			/bin/mount --move /run/.splash-cache $spl_cachedir || return
+		# Mount a tmpfs
+		else
+			( splash_cache_prep ) || return
+		fi
 
-        	var_load STEP_NR MAX_STEPS RC_MULTI RC_SYSINIT RC_SHUTDOWN
-	        # Only update the splash progress if we're in sysinit, multi, or shutdown. #
+		splash_comm_send set message "$SPLASH_BOOT_MESSAGE"
 
-        	        ((SPLASH_STEP_NR++))
-	                SPLASH_PROGRESS=$((100*${SPLASH_STEP_NR}/${SPLASH_MAX_STEPS}))
-        	        SPLASH_CURRENT_PROGRESS=${SPLASH_PROGRESS}
-                	splash_update_progress ${SPLASH_PROGRESS}
-	                var_save STEP_NR CURRENT_PROGRESS
+	;; /etc/runit/3 )
+		( splash_cache_prep ) || return
 
-	}
-else
-	stat_runit(){
-		 printf ""
-                 printhlr "${C_MAIN}${1}${C_CLEAR} "
-	}
+		splash_comm_send set message "$SPLASH_SHUTDOWN_MESSAGE"
+	esac
 fi
-- 
cgit v0.12


From 858a019f8a4a016fd5f50144b16fe8fb08a10978 Mon Sep 17 00:00:00 2001
From: Britney Fransen <brfransen@gmail.com>
Date: Thu, 6 Oct 2011 17:14:06 -0500
Subject: linhes-splash: restore text box status

---
 abs/core/linhes-splash/PKGBUILD              |   4 ++--
 abs/core/linhes-splash/linhes-splash.tar.bz2 | Bin 871816 -> 872102 bytes
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/abs/core/linhes-splash/PKGBUILD b/abs/core/linhes-splash/PKGBUILD
index 1bb7519..d97d794 100644
--- a/abs/core/linhes-splash/PKGBUILD
+++ b/abs/core/linhes-splash/PKGBUILD
@@ -3,7 +3,7 @@
 
 pkgname=linhes-splash
 pkgver=1
-pkgrel=9
+pkgrel=10
 pkgdesc="FBSplash theme for LinHES."
 arch=('i686' 'x86_64')
 license=('GPL2')
@@ -28,4 +28,4 @@ build() {
 #	  fi
 #  done
 }
-md5sums=('10c26a030db0fab8dea7574ee00f3516')
+md5sums=('9b330cd74a438fbf2d814096c3e3be6a')
diff --git a/abs/core/linhes-splash/linhes-splash.tar.bz2 b/abs/core/linhes-splash/linhes-splash.tar.bz2
index 616f460..c41706a 100644
Binary files a/abs/core/linhes-splash/linhes-splash.tar.bz2 and b/abs/core/linhes-splash/linhes-splash.tar.bz2 differ
-- 
cgit v0.12


From 7770cdbf5597c3da976fabbea753474044ec93e6 Mon Sep 17 00:00:00 2001
From: Britney Fransen <brfransen@gmail.com>
Date: Thu, 6 Oct 2011 17:33:56 -0500
Subject: nvidia-utils: update to 285.05.09

---
 abs/core/nvidia-utils/PKGBUILD | 93 +++++++++++++++++++++---------------------
 1 file changed, 46 insertions(+), 47 deletions(-)

diff --git a/abs/core/nvidia-utils/PKGBUILD b/abs/core/nvidia-utils/PKGBUILD
index 4099d9f..3a768d8 100644
--- a/abs/core/nvidia-utils/PKGBUILD
+++ b/abs/core/nvidia-utils/PKGBUILD
@@ -3,105 +3,104 @@
 # Contributor: James Rayner <iphitus@gmail.com>
 pkgbase=nvidia-utils
 pkgname=('nvidia-utils' 'opencl-nvidia')
-pkgver=280.13
+pkgver=285.05.09
 pkgrel=1
 arch=('i686' 'x86_64')
 url="http://www.nvidia.com/"
 license=('custom')
-install=nvidia.install
 options=('!strip')
 
 if [ "$CARCH" = "i686" ]; then
     _arch='x86'
     _pkg="NVIDIA-Linux-${_arch}-${pkgver}"
-    source=("http://us.download.nvidia.com/XFree86/Linux-${_arch}/${pkgver}/${_pkg}.run")
+    source=("ftp://download.nvidia.com/XFree86/Linux-${_arch}/${pkgver}/${_pkg}.run")
+    md5sums=('2d469a90abef50320f548cfa8085e3a0')
 elif [ "$CARCH" = "x86_64" ]; then
     _arch='x86_64'
     _pkg="NVIDIA-Linux-${_arch}-${pkgver}-no-compat32"
-    source=("http://us.download.nvidia.com/XFree86/Linux-${_arch}/${pkgver}/${_pkg}.run")
+    source=("ftp://download.nvidia.com/XFree86/Linux-${_arch}/${pkgver}/${_pkg}.run")
+    md5sums=('2f4a0e78f5560c07220b7ed6fc1e27aa')
 fi
 
 create_links() {
     # create soname links
-    for _lib in $(find $pkgdir -name '*.so*'); do
-            _soname="$(dirname ${_lib})/$(readelf -d "$_lib" | sed -nr 's/.*Library soname: \[(.*)\].*/\1/p')"
-            if [ ! -e "${_soname}" ]; then
-                    ln -s "$(basename ${_lib})" "${_soname}"
-                    ln -s "$(basename ${_soname})" "${_soname/.[0-9]*/}"
-            fi
-    done
+    while read -d '' _lib; do
+        _soname="$(dirname "${_lib}")/$(readelf -d "${_lib}" | sed -nr 's/.*Library soname: \[(.*)\].*/\1/p')"
+        [[ -e "${_soname}" ]] || ln -s "$(basename "${_lib}")" "${_soname}"
+        [[ -e "${_soname/.[0-9]*/}" ]] || ln -s "$(basename "${_soname}")" "${_soname/.[0-9]*/}"
+    done < <(find "${pkgdir}" -type f -name '*.so*' -print0)
 }
 
 build() {
-    cd $srcdir
-    sh ${_pkg}.run --extract-only
+    cd "${srcdir}"
+    sh "${_pkg}.run" --extract-only
 }
 
 package_opencl-nvidia() {
     pkgdesc="OpenCL implemention for NVIDIA"
     depends=('libcl')
     optdepends=('opencl-headers: headers necessary for OpenCL development')
-    cd $srcdir/${_pkg}
+    cd "${srcdir}/${_pkg}"
 
     # OpenCL
-    install -D -m644 nvidia.icd $pkgdir/etc/OpenCL/vendors/nvidia.icd
-    install -D -m755 libnvidia-compiler.so.$pkgver $pkgdir/usr/lib/libnvidia-compiler.so.$pkgver
+    install -D -m644 nvidia.icd "${pkgdir}/etc/OpenCL/vendors/nvidia.icd"
+    install -D -m755 "libnvidia-compiler.so.${pkgver}" "${pkgdir}/usr/lib/libnvidia-compiler.so.${pkgver}"
     # CUDA
-    install -D -m755 libcuda.so.$pkgver $pkgdir/usr/lib/libcuda.so.$pkgver
-    install -D -m755 libnvcuvid.so.$pkgver $pkgdir/usr/lib/libnvcuvid.so.$pkgver
+    install -D -m755 "libcuda.so.${pkgver}" "${pkgdir}/usr/lib/libcuda.so.${pkgver}"
+    install -D -m755 "libnvcuvid.so.${pkgver}" "${pkgdir}/usr/lib/libnvcuvid.so.${pkgver}"
     create_links
 }
 
 package_nvidia-utils() {
     pkgdesc="NVIDIA drivers utilities and libraries."
-    depends=('xorg-server' 'libxvmc' 'libcl' "opencl-nvidia=${pkgver}")
+    depends=('xorg-server' 'libxvmc' 'opencl-nvidia')
     optdepends=('gtk2: nvidia-settings' 'pkg-config: nvidia-xconfig')
     conflicts=('libgl')
     provides=('libgl')
-    cd $srcdir/${_pkg}
+    cd "${srcdir}/${_pkg}"
 
     # X driver
-    install -D -m755 nvidia_drv.so $pkgdir/usr/lib/xorg/modules/drivers/nvidia_drv.so
+    install -D -m755 nvidia_drv.so "${pkgdir}/usr/lib/xorg/modules/drivers/nvidia_drv.so"
     # GLX extension module for X
-    install -D -m755 libglx.so.$pkgver $pkgdir/usr/lib/xorg/modules/extensions/libglx.so.$pkgver
-    ln -s libglx.so.$pkgver $pkgdir/usr/lib/xorg/modules/extensions/libglx.so	# X doesn't find glx otherwise
+    install -D -m755 "libglx.so.${pkgver}" "${pkgdir}/usr/lib/xorg/modules/extensions/libglx.so.${pkgver}"
+    ln -s "libglx.so.${pkgver}" "${pkgdir}/usr/lib/xorg/modules/extensions/libglx.so"	# X doesn't find glx otherwise
     # OpenGL library
-    install -D -m755 libGL.so.$pkgver $pkgdir/usr/lib/libGL.so.$pkgver
+    install -D -m755 "libGL.so.${pkgver}" "${pkgdir}/usr/lib/libGL.so.${pkgver}"
     # OpenGL core library
-    install -D -m755 libnvidia-glcore.so.$pkgver $pkgdir/usr/lib/libnvidia-glcore.so.$pkgver
+    install -D -m755 "libnvidia-glcore.so.${pkgver}" "${pkgdir}/usr/lib/libnvidia-glcore.so.${pkgver}"
     # XvMC
-    install -D -m644 libXvMCNVIDIA.a $pkgdir/usr/lib/libXvMCNVIDIA.a
-    install -D -m755 libXvMCNVIDIA.so.$pkgver $pkgdir/usr/lib/libXvMCNVIDIA.so.$pkgver
+    install -D -m644 libXvMCNVIDIA.a "${pkgdir}/usr/lib/libXvMCNVIDIA.a"
+    install -D -m755 "libXvMCNVIDIA.so.${pkgver}" "${pkgdir}/usr/lib/libXvMCNVIDIA.so.${pkgver}"
     # VDPAU
-    install -D -m755 libvdpau_nvidia.so.$pkgver $pkgdir/usr/lib/vdpau/libvdpau_nvidia.so.$pkgver
+    install -D -m755 "libvdpau_nvidia.so.${pkgver}" "${pkgdir}/usr/lib/vdpau/libvdpau_nvidia.so.${pkgver}"
     # nvidia-tls library
-    install -D -m755 tls/libnvidia-tls.so.$pkgver $pkgdir/usr/lib/libnvidia-tls.so.$pkgver
-    install -D -m755 libnvidia-cfg.so.$pkgver $pkgdir/usr/lib/libnvidia-cfg.so.$pkgver
+    install -D -m755 "tls/libnvidia-tls.so.${pkgver}" "${pkgdir}/usr/lib/libnvidia-tls.so.${pkgver}"
+    install -D -m755 "libnvidia-cfg.so.${pkgver}" "${pkgdir}/usr/lib/libnvidia-cfg.so.${pkgver}"
 
-    install -D -m755 libnvidia-ml.so.$pkgver $pkgdir/usr/lib/libnvidia-ml.so.$pkgver
+    install -D -m755 "libnvidia-ml.so.${pkgver}" "${pkgdir}/usr/lib/libnvidia-ml.so.${pkgver}"
 
     # nvidia-xconfig
-    install -D -m755 nvidia-xconfig $pkgdir/usr/bin/nvidia-xconfig
-    install -D -m644 nvidia-xconfig.1.gz $pkgdir/usr/share/man/man1/nvidia-xconfig.1.gz
+    install -D -m755 nvidia-xconfig "${pkgdir}/usr/bin/nvidia-xconfig"
+    install -D -m644 nvidia-xconfig.1.gz "${pkgdir}/usr/share/man/man1/nvidia-xconfig.1.gz"
     # nvidia-settings
-    install -D -m755 nvidia-settings $pkgdir/usr/bin/nvidia-settings
-    install -D -m644 nvidia-settings.1.gz $pkgdir/usr/share/man/man1/nvidia-settings.1.gz
-    install -D -m644 nvidia-settings.desktop $pkgdir/usr/share/applications/nvidia-settings.desktop
-    install -D -m644 nvidia-settings.png $pkgdir/usr/share/pixmaps/nvidia-settings.png
-    sed -e 's:__UTILS_PATH__:/usr/bin:' -e 's:__PIXMAP_PATH__:/usr/share/pixmaps:' -i $pkgdir/usr/share/applications/nvidia-settings.desktop
+    install -D -m755 nvidia-settings "${pkgdir}/usr/bin/nvidia-settings"
+    install -D -m644 nvidia-settings.1.gz "${pkgdir}/usr/share/man/man1/nvidia-settings.1.gz"
+    install -D -m644 nvidia-settings.desktop "${pkgdir}/usr/share/applications/nvidia-settings.desktop"
+    install -D -m644 nvidia-settings.png "${pkgdir}/usr/share/pixmaps/nvidia-settings.png"
+    sed -e 's:__UTILS_PATH__:/usr/bin:' -e 's:__PIXMAP_PATH__:/usr/share/pixmaps:' -i "${pkgdir}/usr/share/applications/nvidia-settings.desktop"
     # nvidia-bug-report
-    install -D -m755 nvidia-bug-report.sh $pkgdir/usr/bin/nvidia-bug-report.sh
+    install -D -m755 nvidia-bug-report.sh "${pkgdir}/usr/bin/nvidia-bug-report.sh"
     # nvidia-smi
-    install -D -m755 nvidia-smi $pkgdir/usr/bin/nvidia-smi
-    install -D -m644 nvidia-smi.1.gz $pkgdir/usr/share/man/man1/nvidia-smi.1.gz
+    install -D -m755 nvidia-smi "${pkgdir}/usr/bin/nvidia-smi"
+    install -D -m644 nvidia-smi.1.gz "${pkgdir}/usr/share/man/man1/nvidia-smi.1.gz"
 
 
-    install -D -m644 LICENSE $pkgdir/usr/share/licenses/nvidia/LICENSE
-    ln -s nvidia $pkgdir/usr/share/licenses/nvidia-utils
-    install -D -m644 README.txt $pkgdir/usr/share/doc/nvidia/README
-    install -D -m644 NVIDIA_Changelog $pkgdir/usr/share/doc/nvidia/NVIDIA_Changelog
-    ln -s nvidia $pkgdir/usr/share/doc/nvidia-utils
+    install -D -m644 LICENSE "${pkgdir}/usr/share/licenses/nvidia/LICENSE"
+    ln -s nvidia "${pkgdir}/usr/share/licenses/nvidia-utils"
+    install -D -m644 README.txt "${pkgdir}/usr/share/doc/nvidia/README"
+    install -D -m644 NVIDIA_Changelog "${pkgdir}/usr/share/doc/nvidia/NVIDIA_Changelog"
+    ln -s nvidia "${pkgdir}/usr/share/doc/nvidia-utils"
 
     create_links
 }
-md5sums=('c3992c8cef02b7773a398640d8830e77')
+md5sums=('2d469a90abef50320f548cfa8085e3a0')
-- 
cgit v0.12


From 44906a17902495db99431255a833eedf16a581fd Mon Sep 17 00:00:00 2001
From: Britney Fransen <brfransen@gmail.com>
Date: Thu, 6 Oct 2011 18:30:19 -0500
Subject: nvidia: update to 285.05.09

---
 abs/core/nvidia/PKGBUILD | 30 ++++++++++++++++--------------
 1 file changed, 16 insertions(+), 14 deletions(-)

diff --git a/abs/core/nvidia/PKGBUILD b/abs/core/nvidia/PKGBUILD
index 4d8dcb1..934420e 100644
--- a/abs/core/nvidia/PKGBUILD
+++ b/abs/core/nvidia/PKGBUILD
@@ -2,10 +2,10 @@
 # Maintainer : Thomas Baechler <thomas@archlinux.org>
 
 pkgname=nvidia
-pkgver=280.13
+pkgver=285.05.09
 _kernver='2.6.39-LinHES'
 pkgrel=1
-pkgdesc="NVIDIA drivers for kernel26."
+pkgdesc="NVIDIA drivers for linux."
 arch=('i686' 'x86_64')
 url="http://www.nvidia.com/"
 depends=('kernel26>=2.6.39' 'kernel26<2.6.40' "nvidia-utils=${pkgver}")
@@ -18,26 +18,28 @@ options=(!strip)
 if [ "$CARCH" = "i686" ]; then
     _arch='x86'
     _pkg="NVIDIA-Linux-${_arch}-${pkgver}"
-    source=("http://us.download.nvidia.com/XFree86/Linux-${_arch}/${pkgver}/${_pkg}.run")
+    source=("ftp://download.nvidia.com/XFree86/Linux-${_arch}/${pkgver}/${_pkg}.run")
+    md5sums=('2d469a90abef50320f548cfa8085e3a0')
 elif [ "$CARCH" = "x86_64" ]; then
     _arch='x86_64'
     _pkg="NVIDIA-Linux-${_arch}-${pkgver}-no-compat32"
-    source=("http://us.download.nvidia.com/XFree86/Linux-${_arch}/${pkgver}/${_pkg}.run")
+    source=("ftp://download.nvidia.com/XFree86/Linux-${_arch}/${pkgver}/${_pkg}.run")
+    md5sums=('2f4a0e78f5560c07220b7ed6fc1e27aa')
 fi
 
 build() {
-    cd $srcdir
-    sh ${_pkg}.run --extract-only
-    cd ${_pkg}/kernel
-    make SYSSRC=/lib/modules/${_kernver}/build module
+    cd "${srcdir}"
+    sh "${_pkg}.run" --extract-only
+    cd "${_pkg}/kernel"
+    make SYSSRC=/lib/modules/"${_kernver}/build" module
 }
 
 package() {
-    install -D -m644 $srcdir/${_pkg}/kernel/nvidia.ko \
-        $pkgdir/lib/modules/${_kernver}/kernel/drivers/video/nvidia.ko
-    install -d -m755 $pkgdir/etc/modprobe.d
-    echo "blacklist nouveau" >> $pkgdir/etc/modprobe.d/nouveau_blacklist.conf
-    sed -i -e "s/KERNEL_VERSION='.*'/KERNEL_VERSION='${_kernver}'/" $startdir/nvidia.install
+    install -D -m644 "${srcdir}/${_pkg}/kernel/nvidia.ko" \
+        "${pkgdir}/lib/modules/${_kernver}/kernel/drivers/video/nvidia.ko"
+    install -d -m755 "${pkgdir}/etc/modprobe.d"
+    echo "blacklist nouveau" >> "${pkgdir}/etc/modprobe.d/nouveau_blacklist.conf"
+    sed -i -e "s/KERNEL_VERSION='.*'/KERNEL_VERSION='${_kernver}'/" "${startdir}/nvidia.install"
     gzip "${pkgdir}/lib/modules/${_kernver}/kernel/drivers/video/nvidia.ko"
 }
-md5sums=('c3992c8cef02b7773a398640d8830e77')
+md5sums=('2d469a90abef50320f548cfa8085e3a0')
-- 
cgit v0.12


From 8d153f743a19c2571f516fc9e913798097e628d6 Mon Sep 17 00:00:00 2001
From: Britney Fransen <brfransen@gmail.com>
Date: Thu, 6 Oct 2011 19:08:21 -0500
Subject: system-templates: nvidia_supported.txt: update to 285.05.09

---
 abs/core/system-templates/PKGBUILD                 |  2 +-
 .../templates/xorg/nvidia_supported.txt            | 61 +++++++++++++++++++---
 2 files changed, 55 insertions(+), 8 deletions(-)

diff --git a/abs/core/system-templates/PKGBUILD b/abs/core/system-templates/PKGBUILD
index bd53e14..022a84e 100755
--- a/abs/core/system-templates/PKGBUILD
+++ b/abs/core/system-templates/PKGBUILD
@@ -1,6 +1,6 @@
 pkgname=system-templates
 pkgver=2.0
-pkgrel=4
+pkgrel=5
 conflicts=( )
 pkgdesc="Templates used for system configuration"
 depends=()
diff --git a/abs/core/system-templates/templates/xorg/nvidia_supported.txt b/abs/core/system-templates/templates/xorg/nvidia_supported.txt
index ba238a6..6d0fc16 100644
--- a/abs/core/system-templates/templates/xorg/nvidia_supported.txt
+++ b/abs/core/system-templates/templates/xorg/nvidia_supported.txt
@@ -1,4 +1,4 @@
-#http://us.download.nvidia.com/XFree86/Linux-x86/260.19.29/README/supportedchips.html
+#http://us.download.nvidia.com/XFree86/Linux-x86/285.05.09/README/supportedchips.html
 
 GeForce 6800 Ultra  0x0040  -
 GeForce 6800    0x0041  -
@@ -197,13 +197,11 @@ GeForce GTX 480 0x06C0  C
 GeForce GTX 465 0x06C4  C
 GeForce GTX 480M    0x06CA  C
 GeForce GTX 470 0x06CD  C
-Tesla C2050 0x06D1  C
+Tesla C2050 / C2070 0x06D1  C
 Tesla C2070 0x06D1 0x0772   C
 Tesla M2070 0x06D2  C
-Tesla S2050 0x06DE  C
-Tesla M2050 0x06DE 0x077A   C
+Tesla T20 Processor 0x06DE  C
 Tesla M2050 0x06DE 0x082F   C
-Tesla M2050 0x06DE 0x0843   C
 Tesla M2050 0x06DE 0x0846   C
 Tesla M2070-Q   0x06DF  C
 GeForce 9300 GE 0x06E0  B 1
@@ -259,9 +257,12 @@ GeForce 9400    0x087A  B 1
 ION 0x087D  B 1
 ION LE  0x087E  B 1
 ION LE  0x087F  B 1
+GeForce 320M    0x08A5  C
 GeForce GT 220  0x0A20  C
 GeForce 315 0x0A22  -
 GeForce 210 0x0A23  C
+GeForce 405 0x0A26  C
+GeForce 405 0x0A27  C
 GeForce GT 230M 0x0A28  C
 GeForce GT 330M 0x0A29  C
 GeForce GT 230M 0x0A2A  C
@@ -286,6 +287,7 @@ GeForce 310M    0x0A72  C
 GeForce 305M    0x0A73  C
 GeForce G210M   0x0A74  C
 GeForce 310M    0x0A75  C
+GeForce 315M    0x0A7A  C
 GeForce GT 330  0x0CA0  A
 GeForce GT 320  0x0CA2  C
 GeForce GT 240  0x0CA3  C
@@ -297,22 +299,55 @@ GeForce GT 220  0x0CAC  -
 GeForce GT 335M 0x0CAF  C
 GeForce GTS 350M    0x0CB0  C
 GeForce GTS 360M    0x0CB1  C
+GeForce GT 440  0x0DC0  C
 GeForce GTS 450 0x0DC4  C
+GeForce GT 555M 0x0DCD  C
+GeForce GT 555M 0x0DCE  C
 GeForce GTX 460M    0x0DD1  C
+GeForce GT 445M 0x0DD2  C
+GeForce GT 550M 0x0DD6  C
+GeForce GT 440  0x0DE0  C
 GeForce GT 430  0x0DE1  C
+GeForce GT 420  0x0DE2  C
+GeForce GT 530  0x0DE5  C
+GeForce GT 525M 0x0DEC  C
 GeForce GT 415M 0x0DEE  C
 GeForce GT 425M 0x0DF0  C
 GeForce GT 420M 0x0DF1  C
 GeForce GT 435M 0x0DF2  C
 GeForce GT 420M 0x0DF3  C
+GeForce GT 540M 0x0DF4  C
+GeForce GT 525M 0x0DF5  C
+GeForce GT 550M 0x0DF6  C
+GeForce GT 520M 0x0DF7  C
 GeForce GTX 460 0x0E22  C
 GeForce GTX 460 SE  0x0E23  C
 GeForce GTX 460 0x0E24  C
+GeForce GTX 470M    0x0E30  C
+GeForce GTX 485M    0x0E31  C
+GeForce GT 520  0x1040  D
+GeForce GT 520M 0x1050  C
+GeForce GT 520MX    0x1051  D
 GeForce GTX 580 0x1080  C
 GeForce GTX 570 0x1081  C
+GeForce GTX 560 Ti  0x1082  C
+GeForce GTX 590 0x1088  C
+Tesla M2090 0x1091  C
+Tesla M2075 0x1094  C
+Tesla C2075 0x1096  C
+GeForce 8400GS  0x10C3  A
+GeForce 405 0x10C5  C
+GeForce GTX 560 Ti  0x1200  C
+GeForce GTX 560 0x1201  C
+GeForce GTX 570M    0x1210  C
+GeForce GTX 580M    0x1211  C
+GeForce GT 545  0x1241  C
+GeForce GTX 550 Ti  0x1244  C
+GeForce GTS 450 0x1245  C
+GeForce GTX 560M    0x1251  C
 
+#NVIDIA Quadro GPUs
 
-#NVIDIA Quadro GPUsNVIDIA GPU product    Device PCI ID*  VDPAU features
 Quadro FX 4000  0x004E  -
 Quadro FX 4500  0x009D  -
 Quadro FX Go1400    0x00CC  -
@@ -373,6 +408,7 @@ Quadro FX 770M  0x065C  A
 Quadro 6000 0x06D8  C
 Quadro 5000 0x06D9  C
 Quadro 5000M    0x06DA  C
+Quadro 6000 0x06DC  C
 Quadro 4000 0x06DD  C
 Quadro NVS 150M 0x06EA  B 1
 Quadro NVS 160M 0x06EB  B 1
@@ -383,6 +419,7 @@ Quadro FX 370M  0x06FB  B 1
 Quadro NVS 295  0x06FD  B 1
 HICx16 + Graphics   0x06FF  B 1
 NVS 5100M   0x0A2C  C
+Quadro 400  0x0A38  C
 Quadro FX 880M  0x0A3C  C
 NVS 2100M   0x0A6A  C
 NVS 3100M   0x0A6C  C
@@ -390,5 +427,15 @@ Quadro FX 380 LP    0x0A78  C
 Quadro FX 380M  0x0A7C  C
 Quadro FX 1800M 0x0CBC  C
 Quadro 2000 0x0DD8  C
+Quadro 2000D    0x0DD8 0x0914   C
+Quadro 2000M    0x0DDA  C
 Quadro 600  0x0DF8  C
-NVS 300 0x10D8  C
\ No newline at end of file
+Quadro 1000M    0x0DFA  C
+Quadro 3000M    0x0E3A  C
+Quadro 4000M    0x0E3B  C
+GeForce 410M    0x1055  D
+NVS 4200M   0x1056  D
+Quadro 5010M    0x109A  C
+Quadro 7000 0x109B  C
+NVS 300 0x10D8  C
+
-- 
cgit v0.12


From b1b6ee0f12cdb36a552141f3efebcf917d9f5eff Mon Sep 17 00:00:00 2001
From: Cecil <knoppmyth@gmail.com>
Date: Thu, 6 Oct 2011 21:51:18 -0700
Subject: kernel26:Built evdev into kernel.

---
 abs/core/kernel26/PKGBUILD | 5 +++--
 abs/core/kernel26/config   | 6 +++---
 2 files changed, 6 insertions(+), 5 deletions(-)

diff --git a/abs/core/kernel26/PKGBUILD b/abs/core/kernel26/PKGBUILD
index 1b0efcd..3a59e70 100644
--- a/abs/core/kernel26/PKGBUILD
+++ b/abs/core/kernel26/PKGBUILD
@@ -6,7 +6,7 @@ pkgname=('kernel26' 'kernel26-headers' 'kernel26-docs') # Build stock -ARCH kern
 _kernelname=${pkgname#kernel26}
 _basekernel=2.6.39
 pkgver=${_basekernel}.4
-pkgrel=2
+pkgrel=3
 makedepends=('xmlto' 'docbook-xsl')
 _archpatch=1
 _patchname="patch-${_basekernel}-1-ARCH"
@@ -270,6 +270,7 @@ find $pkgdir -type d -exec chmod 755 {} \;
 # remove a file already in kernel26 package
 rm -f $pkgdir/usr/src/linux-$_kernver/Documentation/DocBook/Makefile
 }
+
 md5sums=('1aab7a741abe08d42e8eccf20de61e05'
          'ff5eb7323c054a128d2922bde3297ed5'
          '25bb870bed3865d3771b5e40d6dbfd50'
@@ -280,6 +281,6 @@ md5sums=('1aab7a741abe08d42e8eccf20de61e05'
          '351469fd75d3fa848398728360c6ffa4'
          '3b4a1df8e1f584446918f76cfca66e9b'
          '93d83faea1144a5dbd6df0f42148fb7f'
-         '7b90f6fcd433ddba40337b1e1158b789'
+         '0f8a224911137558edd48e41b38000e8'
          '8be1f60e54eb505b7e67d39fd2233103'
          '25584700a0a679542929c4bed31433b6')
diff --git a/abs/core/kernel26/config b/abs/core/kernel26/config
index da92112..97bcfc9 100644
--- a/abs/core/kernel26/config
+++ b/abs/core/kernel26/config
@@ -1,7 +1,7 @@
 #
 # Automatically generated make config: don't edit
-# Linux/i386 2.6.39.4 Kernel Configuration
-# Wed Aug 17 01:29:19 2011
+# Linux/i386 2.6.39 Kernel Configuration
+# Fri Oct  7 04:30:52 2011
 #
 # CONFIG_64BIT is not set
 CONFIG_X86_32=y
@@ -2511,7 +2511,7 @@ CONFIG_INPUT_MOUSEDEV_PSAUX=y
 CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
 CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
 CONFIG_INPUT_JOYDEV=m
-CONFIG_INPUT_EVDEV=m
+CONFIG_INPUT_EVDEV=y
 # CONFIG_INPUT_EVBUG is not set
 
 #
-- 
cgit v0.12


From 04949a18e6ea4a313d101911dcdc689d029ddcb1 Mon Sep 17 00:00:00 2001
From: Britney Fransen <brfransen@gmail.com>
Date: Fri, 7 Oct 2011 02:34:55 -0500
Subject: zoneminder: add zmupdate.pl

---
 abs/core/zoneminder/PKGBUILD | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/abs/core/zoneminder/PKGBUILD b/abs/core/zoneminder/PKGBUILD
index 00ac2c6..6b5c6c8 100755
--- a/abs/core/zoneminder/PKGBUILD
+++ b/abs/core/zoneminder/PKGBUILD
@@ -3,7 +3,7 @@
 
 pkgname=zoneminder
 pkgver=1.25.0
-pkgrel=1
+pkgrel=2
 pkgdesc="Capture, analyse, record and monitor video security cameras."
 arch=('i686' 'x86_64')
 url="http://www.zoneminder.com"
@@ -45,12 +45,12 @@ build() {
   install -D -m 700 $startdir/src/zminit.arch  $startdir/pkg/usr/lib/zm/bin/zminit
   install -D -m 700 $startdir/src/zm.rc.d  $startdir/pkg/etc/rc.d/zm
   install -D -m 700 scripts/zmdbbackup  $startdir/pkg/usr/lib/zm/bin/zmdbbackup
-  install -D -m 700 scripts/zmdbbackup  $startdir/pkg/usr/lib/zm/bin/zmdbbackup
   install -D -m 700 scripts/zmdbrestore  $startdir/pkg/usr/lib/zm/bin/zmdbrestore
   install -D -m 700 scripts/zmeventdump  $startdir/pkg/usr/lib/zm/bin/zmeventdump
   install -D -m 700 scripts/zmlogrotate.conf  $startdir/pkg/etc/logrotate.d/zm
   install -D -m 700 $startdir/src/zmeventbackup  $startdir/pkg/etc/cron.hourly/zmeventbackup
-  install -D -m 755 $startdir/src/zmfilter.pl $startdir/pkg/usr/lib/zm/bin/zmfilter.pl
+  install -D -m 755 scripts/zmfilter.pl $startdir/pkg/usr/lib/zm/bin/zmfilter.pl
+  install -D -m 755 scripts/zmupdate.pl $startdir/pkg/usr/lib/zm/bin/zmupdate.pl
 
   mkdir -p  $startdir/pkg/etc/httpd/conf/extra/
   install -m 644 $startdir/src/httpd-zm.conf $startdir/pkg/etc/httpd/conf/extra/httpd-zm.conf
@@ -59,6 +59,7 @@ build() {
   install -D  db/zm*.sql $startdir/pkg/usr/lib/zm/upgrade/
 
   mkdir -p $startdir/pkg/var/run/zm
+  mkdir -p $startdir/pkg/var/lib/zm
 
   #install runit files
   mkdir -p $pkgdir/etc/sv/zm
@@ -71,7 +72,6 @@ build() {
     |xargs -i rm -f {}
 
 }
-
 md5sums=('eaefa14befd482154970541252aa1a39'
          'b20fb25b187eb6abb21321e153a7fb25'
          '5033bc098bf497c8aed1fc1b3c9c5f9c'
-- 
cgit v0.12


From f37574bd879953f9c2c1ee1dc97577d804759895 Mon Sep 17 00:00:00 2001
From: Michael Hanson <mihanson@linhes.org>
Date: Sat, 8 Oct 2011 00:47:55 +0000
Subject: libhdhomerun: update to 20110925a

---
 abs/core/libhdhomerun/PKGBUILD | 39 +++++++++++++++++++--------------------
 1 file changed, 19 insertions(+), 20 deletions(-)

diff --git a/abs/core/libhdhomerun/PKGBUILD b/abs/core/libhdhomerun/PKGBUILD
index 530cb7e..018ca37 100644
--- a/abs/core/libhdhomerun/PKGBUILD
+++ b/abs/core/libhdhomerun/PKGBUILD
@@ -1,6 +1,5 @@
 pkgname=libhdhomerun	
-pkgver=20110830
-_altver=20110729
+pkgver=20110925a
 pkgrel=1
 pkgdesc="utils and firmware needed for the hdhomerun"
 arch=('i686' 'x86_64')
@@ -9,15 +8,15 @@ license=('GPL3')
 #makedepends=('gtk2')
 #optdepends=('gtk2: for using hdhomerun_config_gui')
 replaces=('hdhomerun')
-_firmware1=hdhomerun_atsc_firmware_${_altver}.bin
-_firmware2=hdhomerun_dvbt_firmware_${_altver}.bin
-_firmware3=hdhomerun3_atsc_firmware_${_altver}.bin
-_firmware4=hdhomerun3_dvbt_firmware_${_altver}.bin
-_firmware5=hdhomerun3_dvbtc_firmware_${_altver}.bin
+_firmware1=hdhomerun_atsc_firmware_${pkgver}.bin
+_firmware2=hdhomerun_dvbt_firmware_${pkgver}.bin
+_firmware3=hdhomerun3_atsc_firmware_${pkgver}.bin
+_firmware4=hdhomerun3_dvbt_firmware_${pkgver}.bin
+_firmware5=hdhomerun3_dvbtc_firmware_${pkgver}.bin
 _firmware6=hdhomerun3_cablecard_firmware_${pkgver}.bin
-_firmware7=hdhomerun_tech_atsc_firmware_${_altver}.bin
-_firmware8=hdhomerun3_tech_atsc_firmware_${_altver}.bin
-_firmware9=hdhomerun3_tech_dvbtc_firmware_${_altver}.bin
+_firmware7=hdhomerun_tech_atsc_firmware_${pkgver}.bin
+_firmware8=hdhomerun3_tech_atsc_firmware_${pkgver}.bin
+_firmware9=hdhomerun3_tech_dvbtc_firmware_${pkgver}.bin
 _url2=http://download.silicondust.com/hdhomerun
 source=("${_url2}/libhdhomerun_${pkgver}.tgz"
         "${_url2}/${_firmware1}"
@@ -55,13 +54,13 @@ package() {
     install -D ${srcdir}/${file} ${pkgdir}/lib/firmware/
    done
 }
-md5sums=('44b7f164b3d5aa8c555cf59aeeab6ee1'
-         'c168642982c069b0bc40554cb3986e49'
-         '300e16a29f182ef94486d920a5909e3e'
-         'f4b1341a593ae597a39c10cd81522dad'
-         '1a45959ffee80acaaeb5fa81296acd20'
-         'b63f0cd1c632603a8bc68f63565176b2'
-         'e3ae2597dceda376d987584a23fdbdf5'
-         '9c608d02dd6de39e55714887b38ca37a'
-         'f9303c9c8d90305b2da9855d327285bc'
-         'd517f629b01735037c10cf89d84a3215')
+md5sums=('a5ce955e287ef5a461067ec76a174cf4'
+         '9dedecc1d4b4f4e49cac2f16b6e1869f'
+         'e4073ec7cb0af8ca44019acbd0cdb64f'
+         'b3c7fc8482760da747fd93e858677681'
+         'f9e2af57fbd8cb3d8bad132639bbc62c'
+         '0dafd968ea9bf7e4d154aad71ea9586d'
+         'a50dae85d079049cf2c0af969a8516bf'
+         '9b80487e02c1fec6a74adeaba26c8372'
+         'f34d8a819be140874662a48e9225d0cd'
+         'af9d51b83b2d0c6e05e90a3704ff7003')
-- 
cgit v0.12


From 7a6080609ec0be6d9f62b8890f9eacbd8e053273 Mon Sep 17 00:00:00 2001
From: Britney Fransen <brfransen@gmail.com>
Date: Fri, 7 Oct 2011 21:16:18 -0500
Subject: linhes-scripts: linhes_update scripts: update osd_cat to use
 osd_cat.cfg settings

---
 abs/core/linhes-scripts/PKGBUILD          |  8 ++++----
 abs/core/linhes-scripts/linhes_update.sh  | 20 +++++++++++++++-----
 abs/core/linhes-scripts/linhes_update2.sh | 18 +++++++++++++++---
 abs/core/linhes-scripts/linhes_update3.sh | 17 ++++++++++++++---
 4 files changed, 48 insertions(+), 15 deletions(-)

diff --git a/abs/core/linhes-scripts/PKGBUILD b/abs/core/linhes-scripts/PKGBUILD
index 9c35ee3..15726ec 100644
--- a/abs/core/linhes-scripts/PKGBUILD
+++ b/abs/core/linhes-scripts/PKGBUILD
@@ -3,7 +3,7 @@
 
 pkgname=linhes-scripts
 pkgver=7
-pkgrel=8
+pkgrel=9
 pkgdesc="Various scripts that help to make LinHES, LinHES."
 arch=('i686' 'x86_64')
 license=('GPL2')
@@ -78,9 +78,9 @@ md5sums=('f56985b2d602e11dc1e10d3e7848b2a5'
          '25dd5b8ec0482d561b481bfce051d648'
          'b2c3dd48a4abb976eda2d5fbf22a173a'
          'b527b01d119d3bc33b8fa69bdf1082bb'
-         'c537c44156d8404016cc4b405b092d45'
-         '4e66f302a77f1a857476e7f289d0c157'
-         'be324dba44ae96676973a74421944853'
+         '99f77a83b608bf68808a9ff18df1b53b'
+         '430e51c1ac7fa1abb938be4322f25ab6'
+         '460861e6d0cf999629b734912eea0acf'
          'ccca6bdbbd86b203a3eecdbbe363e701'
          '65629302a4d2c3adf88cdf0ebc10d493'
          '2734054f08c4c885bb9070dce239d4c3'
diff --git a/abs/core/linhes-scripts/linhes_update.sh b/abs/core/linhes-scripts/linhes_update.sh
index 39d2817..15efc6f 100644
--- a/abs/core/linhes-scripts/linhes_update.sh
+++ b/abs/core/linhes-scripts/linhes_update.sh
@@ -1,23 +1,33 @@
 #!/bin/bash
+
+#----------------------------------------------------------------------------
+. /etc/osd_cat.cfg || {
+	color=yellow
+	outline=2
+	outlinecolour=black
+	shadow=0
+	shadowcolour=black
+	font="-adobe-helvetica-bold-*-*-*-34-*-*-*-*-*-*-*"
+}
+#----------------------------------------------------------------------------
 dsply ()  {
 	if grep -q Updates\ Available /usr/share/mythtv/themes/defaultmenu/linhes.xml
 		then
 		killall -9 osd_cat
-		echo -e "Updates available!\n  Exit and reenter Service Menu\n to perform updates." | osd_cat -p middle -s 5 -f"-adobe-courier-bold-*-*-*-34-*-*-*-*-*" -d 10 -A centre
+		echo -e "\nUpdates available!\n  Exit and re-enter Service Menu\n to perform updates." | osd_cat --pos=middle --align=center --delay=10 --color=$color --outline=$outline --outlinecolour=$outlinecolour --shadow=$shadow --shadowcolour=$shadowcolour --font=$font &
 		exit
 		else
 		killall -9 osd_cat
-		echo -e "Checking for updates." | osd_cat -p middle -s 5 -f"-adobe-courier-bold-*-*-*-34-*-*-*-*-*" -d 300 -A centre &
+		echo -e "Checking for updates..." | osd_cat --pos=middle --align=center --delay=300 --color=$color --outline=$outline --outlinecolour=$outlinecolour --shadow=$shadow --shadowcolour=$shadowcolour --font=$font &
 	fi
 }
 chck ()  {
 	sudo pacman -Sy
 	sudo pacman -Qu > /tmp/to_be_upgraded
-#	sudo grep Target /tmp/check_update > /tmp/to_be_upgraded
-	if grep -q no\ upgrades\ found /tmp/check_update
+	if [[ ! -s /tmp/to_be_upgraded ]]
 		then
 		killall -9 osd_cat
-		echo -e "No updates available\n at this time." | osd_cat -p middle -s 5 -f"-adobe-courier-bold-*-*-*-34-*-*-*-*-*" -d 5 -A centre
+		echo -e "\nNo updates available." | osd_cat --pos=middle --align=center --delay=5 --color=$color --outline=$outline --outlinecolour=$outlinecolour --shadow=$shadow --shadowcolour=$shadowcolour --font=$font &
 		else
 		mv /usr/share/mythtv/themes/defaultmenu/linhes.xml /tmp/linhes.xml.tmp
         sed -e '/\#Check/,/\#Check/d' < /tmp/linhes.xml.tmp > /usr/share/mythtv/themes/defaultmenu/linhes.xml
diff --git a/abs/core/linhes-scripts/linhes_update2.sh b/abs/core/linhes-scripts/linhes_update2.sh
index 80945eb..ea675d7 100644
--- a/abs/core/linhes-scripts/linhes_update2.sh
+++ b/abs/core/linhes-scripts/linhes_update2.sh
@@ -1,12 +1,24 @@
 #!/bin/bash
+
+#----------------------------------------------------------------------------
+. /etc/osd_cat.cfg || {
+	color=yellow
+	outline=2
+	outlinecolour=black
+	shadow=0
+	shadowcolour=black
+	font="-adobe-helvetica-bold-*-*-*-34-*-*-*-*-*-*-*"
+}
+#----------------------------------------------------------------------------
+
 killall -9 osd_cat
-echo -e "Performing updates." | osd_cat -p middle -s 5 -f"-adobe-courier-bold-*-*-*-34-*-*-*-*-*" -d 300000 -A centre & 
+echo -e "Updating..." | osd_cat --pos=middle --align=center --delay=300000 --color=$color --outline=$outline --outlinecolour=$outlinecolour --shadow=$shadow --shadowcolour=$shadowcolour --font=$font & 
 sudo pacman -Suf --noconfirm && sudo killall -9 osd_cat
 if grep -q Check\ for\ updates /usr/share/mythtv/themes/defaultmenu/linhes.xml
 then
 rm -fr /tmp/to_be_upgraded
 killall -9 osd_cat
-echo -e "Update complete." | osd_cat -p middle -s 5 -f"-adobe-courier-bold-*-*-*-34-*-*-*-*-*" -d 5 -A centre
+echo -e "\nUpdate complete." | osd_cat --pos=middle --align=center --delay=5 --color=$color --outline=$outline --outlinecolour=$outlinecolour --shadow=$shadow --shadowcolour=$shadowcolour --font=$font &
 else
 mv /usr/share/mythtv/themes/defaultmenu/linhes.xml /tmp/linhes.xml.tmp
 sed -e '/\#UpdatesAv/,/\#UpdatesAv/d' < /tmp/linhes.xml.tmp > /usr/share/mythtv/themes/defaultmenu/linhes.xml
@@ -24,5 +36,5 @@ echo "</mythmenu>" >> /tmp/linhes.xml.tmp
 mv /tmp/linhes.xml.tmp /usr/share/mythtv/themes/defaultmenu/linhes.xml
 rm -fr /tmp/to_be_upgraded
 killall -9 osd_cat
-echo -e "Update complete." | osd_cat -p middle -s 5 -f"-adobe-courier-bold-*-*-*-34-*-*-*-*-*" -d 5 -A centre
+echo -e "\nUpdate complete." | osd_cat --pos=middle --align=center --delay=5 --color=$color --outline=$outline --outlinecolour=$outlinecolour --shadow=$shadow --shadowcolour=$shadowcolour --font=$font &
 fi
diff --git a/abs/core/linhes-scripts/linhes_update3.sh b/abs/core/linhes-scripts/linhes_update3.sh
index 5dc0b4d..72641db 100644
--- a/abs/core/linhes-scripts/linhes_update3.sh
+++ b/abs/core/linhes-scripts/linhes_update3.sh
@@ -1,17 +1,28 @@
 #!/bin/bash
+#----------------------------------------------------------------------------
+. /etc/osd_cat.cfg || {
+	color=yellow
+	outline=2
+	outlinecolour=black
+	shadow=0
+	shadowcolour=black
+	font="-adobe-helvetica-bold-*-*-*-34-*-*-*-*-*-*-*"
+}
+#----------------------------------------------------------------------------
+
 sudo killall osd_cat
 cat /tmp/to_be_upgraded | sed 's/ /\n/g' | sed '/^$/d' | grep - > /tmp/to_be_upgraded2
 COUNT=$(wc -l /tmp/to_be_upgraded2 | awk '{print $1}')
 if [ $COUNT -lt 20 ]
 	then
-	cat /tmp/to_be_upgraded2 | osd_cat -p top -f"-adobe-courier-bold-*-*-*-34-*-*-*-*-*" -d 12 -A centre -l 20
+	cat /tmp/to_be_upgraded2 | osd_cat --lines=20 --pos=top --align=center --delay=12 --color=$color --outline=$outline --outlinecolour=$outlinecolour --shadow=$shadow --shadowcolour=$shadowcolour --font=$font &
 	else
-	cat /tmp/to_be_upgraded2 | osd_cat -p top -f"-adobe-courier-bold-*-*-*-34-*-*-*-*-*" -d 1 -A centre -l 20 -w
+	cat /tmp/to_be_upgraded2 | osd_cat --lines=20 --pos=top --align=center --delay=1 --wait --color=$color --outline=$outline --outlinecolour=$outlinecolour --shadow=$shadow --shadowcolour=$shadowcolour --font=$font &
 fi
 if grep kernel26 /tmp/to_be_upgraded2
 then
 	killall -9 osd_cat
-	echo -e "Please note:\The kernel will be upgraded.\nThis will require a reboot.\nPlease do so when no jobs are running." | osd_cat -p middle -s 5 -f"-adobe-courier-bould-*-*-*-34-*-*-*-*-*" -d 10 -A centre
+	echo -e "Please note:\The kernel will be upgraded.\nThis will require a reboot.\nPlease do so when no jobs are running." | osd_cat --pos=middle --align=center --delay=10 --color=$color --outline=$outline --outlinecolour=$outlinecolour --shadow=$shadow --shadowcolour=$shadowcolour --font=$font
 else
 	exit
 fi
-- 
cgit v0.12


From 0248c360045baf6fc4d0d114083d78f306902b82 Mon Sep 17 00:00:00 2001
From: Britney Fransen <brfransen@gmail.com>
Date: Sat, 8 Oct 2011 00:44:32 -0500
Subject: mythtv: change View Updates menu to use a menu instead of osd_cat

---
 abs/core/mythtv/stable-0.24/mythtv/PKGBUILD             | 2 +-
 abs/core/mythtv/stable-0.24/mythtv/menu-xml/linhes.xml  | 2 +-
 abs/core/mythtv/stable-0.24/mythtv/menu-xml/update2.xml | 6 +++---
 3 files changed, 5 insertions(+), 5 deletions(-)

diff --git a/abs/core/mythtv/stable-0.24/mythtv/PKGBUILD b/abs/core/mythtv/stable-0.24/mythtv/PKGBUILD
index 2f9970a..b79cb66 100755
--- a/abs/core/mythtv/stable-0.24/mythtv/PKGBUILD
+++ b/abs/core/mythtv/stable-0.24/mythtv/PKGBUILD
@@ -6,7 +6,7 @@
 
 pkgname=mythtv
 pkgver=0.24
-pkgrel=22
+pkgrel=23
 pkgdesc="A Homebrew PVR project"
 arch=('i686' 'x86_64')
 url="http://www.mythtv.org/"
diff --git a/abs/core/mythtv/stable-0.24/mythtv/menu-xml/linhes.xml b/abs/core/mythtv/stable-0.24/mythtv/menu-xml/linhes.xml
index ebc848b..01b6ffa 100644
--- a/abs/core/mythtv/stable-0.24/mythtv/menu-xml/linhes.xml
+++ b/abs/core/mythtv/stable-0.24/mythtv/menu-xml/linhes.xml
@@ -52,7 +52,7 @@
 <!--#Check for updates-->
    <button>
      <type>UPGRADE</type>
-     <text>Upgrade LinHES</text>
+     <text>Update LinHES</text>
      <action>MENU update.xml</action>
    </button>
 <!--#Check for updates-->
diff --git a/abs/core/mythtv/stable-0.24/mythtv/menu-xml/update2.xml b/abs/core/mythtv/stable-0.24/mythtv/menu-xml/update2.xml
index 2ab82ea..e4a443d 100644
--- a/abs/core/mythtv/stable-0.24/mythtv/menu-xml/update2.xml
+++ b/abs/core/mythtv/stable-0.24/mythtv/menu-xml/update2.xml
@@ -2,7 +2,7 @@
 
    <button>
      <type>UPGRADE</type>
-     <text>Perform updates?</text>
+     <text>Install Updates?</text>
      <action>NONE</action>
    </button>
 
@@ -20,7 +20,7 @@
 
    <button>
      <type>UPGRADE</type>
-     <text>View files to be upgraded.</text>
-     <action>EXEC sudo /usr/LH/bin/linhes_update3.sh</action>
+     <text>View Updates</text>
+     <action>MENU update3.xml</action>
    </button>
 </mythmenu>
-- 
cgit v0.12


From acb5b54bcbb632533b788e4ef6b600356947be6e Mon Sep 17 00:00:00 2001
From: Britney Fransen <brfransen@gmail.com>
Date: Sat, 8 Oct 2011 01:48:03 -0500
Subject: linhes-scripts: linhes_update: View Updates in myth menus; double
 osd_cat calls to work around occasional display issue

---
 abs/core/linhes-scripts/PKGBUILD          |  6 ++--
 abs/core/linhes-scripts/linhes_update.sh  | 51 +++++++++++++++++++++++--------
 abs/core/linhes-scripts/linhes_update2.sh |  9 ++++--
 3 files changed, 47 insertions(+), 19 deletions(-)

diff --git a/abs/core/linhes-scripts/PKGBUILD b/abs/core/linhes-scripts/PKGBUILD
index 15726ec..f0ca1a6 100644
--- a/abs/core/linhes-scripts/PKGBUILD
+++ b/abs/core/linhes-scripts/PKGBUILD
@@ -3,7 +3,7 @@
 
 pkgname=linhes-scripts
 pkgver=7
-pkgrel=9
+pkgrel=10
 pkgdesc="Various scripts that help to make LinHES, LinHES."
 arch=('i686' 'x86_64')
 license=('GPL2')
@@ -78,8 +78,8 @@ md5sums=('f56985b2d602e11dc1e10d3e7848b2a5'
          '25dd5b8ec0482d561b481bfce051d648'
          'b2c3dd48a4abb976eda2d5fbf22a173a'
          'b527b01d119d3bc33b8fa69bdf1082bb'
-         '99f77a83b608bf68808a9ff18df1b53b'
-         '430e51c1ac7fa1abb938be4322f25ab6'
+         'f691c2bdf5da5455c9a5c2ab0ee1f820'
+         '253d5c9249fbf4641dbf82368efac7cb'
          '460861e6d0cf999629b734912eea0acf'
          'ccca6bdbbd86b203a3eecdbbe363e701'
          '65629302a4d2c3adf88cdf0ebc10d493'
diff --git a/abs/core/linhes-scripts/linhes_update.sh b/abs/core/linhes-scripts/linhes_update.sh
index 15efc6f..a307146 100644
--- a/abs/core/linhes-scripts/linhes_update.sh
+++ b/abs/core/linhes-scripts/linhes_update.sh
@@ -14,11 +14,13 @@ dsply ()  {
 	if grep -q Updates\ Available /usr/share/mythtv/themes/defaultmenu/linhes.xml
 		then
 		killall -9 osd_cat
-		echo -e "\nUpdates available!\n  Exit and re-enter Service Menu\n to perform updates." | osd_cat --pos=middle --align=center --delay=10 --color=$color --outline=$outline --outlinecolour=$outlinecolour --shadow=$shadow --shadowcolour=$shadowcolour --font=$font &
+		echo -e "\nUpdates available!\nExit and re-enter Service Menu\n to install the updates." | osd_cat --pos=middle --align=center --delay=5 --color=$color --outline=$outline --outlinecolour=$outlinecolour --shadow=$shadow --shadowcolour=$shadowcolour --font=$font &
+		echo -e "\nUpdates available!\nExit and re-enter Service Menu\n to install the updates." | osd_cat --pos=middle --align=center --delay=5 --color=$color --outline=$outline --outlinecolour=$outlinecolour --shadow=$shadow --shadowcolour=$shadowcolour --font=$font &
 		exit
 		else
 		killall -9 osd_cat
 		echo -e "Checking for updates..." | osd_cat --pos=middle --align=center --delay=300 --color=$color --outline=$outline --outlinecolour=$outlinecolour --shadow=$shadow --shadowcolour=$shadowcolour --font=$font &
+		echo -e "Checking for updates..." | osd_cat --pos=middle --align=center --delay=300 --color=$color --outline=$outline --outlinecolour=$outlinecolour --shadow=$shadow --shadowcolour=$shadowcolour --font=$font &
 	fi
 }
 chck ()  {
@@ -28,20 +30,43 @@ chck ()  {
 		then
 		killall -9 osd_cat
 		echo -e "\nNo updates available." | osd_cat --pos=middle --align=center --delay=5 --color=$color --outline=$outline --outlinecolour=$outlinecolour --shadow=$shadow --shadowcolour=$shadowcolour --font=$font &
+		echo -e "\nNo updates available." | osd_cat --pos=middle --align=center --delay=5 --color=$color --outline=$outline --outlinecolour=$outlinecolour --shadow=$shadow --shadowcolour=$shadowcolour --font=$font &
 		else
 		mv /usr/share/mythtv/themes/defaultmenu/linhes.xml /tmp/linhes.xml.tmp
-        sed -e '/\#Check/,/\#Check/d' < /tmp/linhes.xml.tmp > /usr/share/mythtv/themes/defaultmenu/linhes.xml
-        mv /usr/share/mythtv/themes/defaultmenu/linhes.xml /tmp
-        grep -v -e /mythmenu /tmp/linhes.xml > /tmp/linhes.xml.tmp
-  		echo "<!--#UpdatesAvailable-->" >> /tmp/linhes.xml.tmp
-  		echo "   <button>" >> /tmp/linhes.xml.tmp
-  		echo "     <type>UPGRADE</type>" >> /tmp/linhes.xml.tmp
-  		echo "     <text>Updates Available</text>" >> /tmp/linhes.xml.tmp
-  		echo "     <action>MENU update2.xml</action>" >> /tmp/linhes.xml.tmp
-  		echo "   </button>" >> /tmp/linhes.xml.tmp
-  		echo "<!--#UpdatesAvailable-->" >> /tmp/linhes.xml.tmp
-  		echo "</mythmenu>" >> /tmp/linhes.xml.tmp
-  		mv /tmp/linhes.xml.tmp /usr/share/mythtv/themes/defaultmenu/linhes.xml
+		sed -e '/\#Check/,/\#Check/d' < /tmp/linhes.xml.tmp > /usr/share/mythtv/themes/defaultmenu/linhes.xml
+		mv /usr/share/mythtv/themes/defaultmenu/linhes.xml /tmp
+		grep -v -e /mythmenu /tmp/linhes.xml > /tmp/linhes.xml.tmp
+		echo "<!--#UpdatesAvailable-->" >> /tmp/linhes.xml.tmp
+		echo "   <button>" >> /tmp/linhes.xml.tmp
+		echo "     <type>UPGRADE</type>" >> /tmp/linhes.xml.tmp
+		echo "     <text>Updates Available</text>" >> /tmp/linhes.xml.tmp
+		echo "     <action>MENU update2.xml</action>" >> /tmp/linhes.xml.tmp
+		echo "   </button>" >> /tmp/linhes.xml.tmp
+		echo "<!--#UpdatesAvailable-->" >> /tmp/linhes.xml.tmp
+		echo "</mythmenu>" >> /tmp/linhes.xml.tmp
+		mv /tmp/linhes.xml.tmp /usr/share/mythtv/themes/defaultmenu/linhes.xml
+
+		echo "<mythmenu name=\"LinHES\">" > /tmp/update3.xml.tmp
+		if grep kernel26 /tmp/to_be_upgraded
+ 			then
+                        echo "" >> /tmp/update3.xml.tmp
+                        echo "   <button>" >> /tmp/update3.xml.tmp
+                        echo "     <type>UPGRADE</type>" >> /tmp/update3.xml.tmp
+                        echo "     <text>REBOOT REQUIRED</text>" >> /tmp/update3.xml.tmp
+                        echo "     <action>NONE</action>" >> /tmp/update3.xml.tmp
+                        echo "   </button>" >> /tmp/update3.xml.tmp
+		fi
+
+		while read line; do
+                        echo "" >> /tmp/update3.xml.tmp
+                        echo "   <button>" >> /tmp/update3.xml.tmp
+                        echo "     <type>UPGRADE</type>" >> /tmp/update3.xml.tmp
+                        echo "     <text>$line</text>" >> /tmp/update3.xml.tmp
+                        echo "     <action>NONE</action>" >> /tmp/update3.xml.tmp
+                        echo "   </button>" >> /tmp/update3.xml.tmp
+                done < "/tmp/to_be_upgraded"
+                echo "</mythmenu>" >> /tmp/update3.xml.tmp
+                mv /tmp/update3.xml.tmp /usr/share/mythtv/themes/defaultmenu/update3.xml
   		dsply
 	fi
 	}
diff --git a/abs/core/linhes-scripts/linhes_update2.sh b/abs/core/linhes-scripts/linhes_update2.sh
index ea675d7..78a0519 100644
--- a/abs/core/linhes-scripts/linhes_update2.sh
+++ b/abs/core/linhes-scripts/linhes_update2.sh
@@ -13,12 +13,14 @@
 
 killall -9 osd_cat
 echo -e "Updating..." | osd_cat --pos=middle --align=center --delay=300000 --color=$color --outline=$outline --outlinecolour=$outlinecolour --shadow=$shadow --shadowcolour=$shadowcolour --font=$font & 
+echo -e "Updating..." | osd_cat --pos=middle --align=center --delay=300000 --color=$color --outline=$outline --outlinecolour=$outlinecolour --shadow=$shadow --shadowcolour=$shadowcolour --font=$font & 
 sudo pacman -Suf --noconfirm && sudo killall -9 osd_cat
 if grep -q Check\ for\ updates /usr/share/mythtv/themes/defaultmenu/linhes.xml
 then
 rm -fr /tmp/to_be_upgraded
 killall -9 osd_cat
-echo -e "\nUpdate complete." | osd_cat --pos=middle --align=center --delay=5 --color=$color --outline=$outline --outlinecolour=$outlinecolour --shadow=$shadow --shadowcolour=$shadowcolour --font=$font &
+echo -e "\nUpdate complete." | osd_cat --pos=middle --align=center --delay=3 --color=$color --outline=$outline --outlinecolour=$outlinecolour --shadow=$shadow --shadowcolour=$shadowcolour --font=$font &
+echo -e "\nUpdate complete." | osd_cat --pos=middle --align=center --delay=3 --color=$color --outline=$outline --outlinecolour=$outlinecolour --shadow=$shadow --shadowcolour=$shadowcolour --font=$font &
 else
 mv /usr/share/mythtv/themes/defaultmenu/linhes.xml /tmp/linhes.xml.tmp
 sed -e '/\#UpdatesAv/,/\#UpdatesAv/d' < /tmp/linhes.xml.tmp > /usr/share/mythtv/themes/defaultmenu/linhes.xml
@@ -27,7 +29,7 @@ grep -v -e /mythmenu /tmp/linhes.xml > /tmp/linhes.xml.tmp
 echo "<!--#Check for updates-->" >> /tmp/linhes.xml.tmp
 echo "   <button>" >> /tmp/linhes.xml.tmp
 echo "     <type>UPGRADE</type>" >> /tmp/linhes.xml.tmp
-echo "     <text>Upgrade LinHES</text>" >> /tmp/linhes.xml.tmp
+echo "     <text>Update LinHES</text>" >> /tmp/linhes.xml.tmp
 echo "     <action>MENU update.xml</action>" >> /tmp/linhes.xml.tmp
 echo "   </button>" >> /tmp/linhes.xml.tmp
 echo "<!--#Check for updates-->" >> /tmp/linhes.xml.tmp
@@ -36,5 +38,6 @@ echo "</mythmenu>" >> /tmp/linhes.xml.tmp
 mv /tmp/linhes.xml.tmp /usr/share/mythtv/themes/defaultmenu/linhes.xml
 rm -fr /tmp/to_be_upgraded
 killall -9 osd_cat
-echo -e "\nUpdate complete." | osd_cat --pos=middle --align=center --delay=5 --color=$color --outline=$outline --outlinecolour=$outlinecolour --shadow=$shadow --shadowcolour=$shadowcolour --font=$font &
+echo -e "\nUpdate complete." | osd_cat --pos=middle --align=center --delay=3 --color=$color --outline=$outline --outlinecolour=$outlinecolour --shadow=$shadow --shadowcolour=$shadowcolour --font=$font &
+echo -e "\nUpdate complete." | osd_cat --pos=middle --align=center --delay=3 --color=$color --outline=$outline --outlinecolour=$outlinecolour --shadow=$shadow --shadowcolour=$shadowcolour --font=$font &
 fi
-- 
cgit v0.12


From df7692ca88333072e85a283e69072c45cebd19ea Mon Sep 17 00:00:00 2001
From: Michael Hanson <mihanson@linhes.org>
Date: Sat, 8 Oct 2011 20:21:19 +0000
Subject: libebml: update to 1.2.2

---
 abs/extra/libebml/PKGBUILD | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/abs/extra/libebml/PKGBUILD b/abs/extra/libebml/PKGBUILD
index dfe2d6e..5ea5a45 100644
--- a/abs/extra/libebml/PKGBUILD
+++ b/abs/extra/libebml/PKGBUILD
@@ -3,8 +3,8 @@
 # Contributor: 03/08/04 <lefungus@altern.org>
 
 pkgname=libebml
-pkgver=1.0.0
-pkgrel=2
+pkgver=1.2.2
+pkgrel=1
 pkgdesc="Extensible Binary Meta Language library"
 arch=('i686' 'x86_64')
 url="http://dl.matroska.org/downloads/libebml/"
@@ -20,4 +20,4 @@ package() {
  cd ${srcdir}/${pkgname}-${pkgver}/make/linux
  make prefix=${pkgdir}/usr install
 }
-md5sums=('6d438f03d8928d83a2d120ed02705f03')
+md5sums=('726cc2bd1a525929ff35ff9854c0ebab')
-- 
cgit v0.12


From 65826be9bf7fd0fa237671ae014388d2d61824b9 Mon Sep 17 00:00:00 2001
From: Michael Hanson <mihanson@linhes.org>
Date: Sat, 8 Oct 2011 20:21:55 +0000
Subject: libmatroska: update to 1.3.0

---
 abs/extra/libmatroska/PKGBUILD | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/abs/extra/libmatroska/PKGBUILD b/abs/extra/libmatroska/PKGBUILD
index 4a85d50..7df70c8 100644
--- a/abs/extra/libmatroska/PKGBUILD
+++ b/abs/extra/libmatroska/PKGBUILD
@@ -3,8 +3,8 @@
 # Contributor 03/08/04 <lefungus@altern.org>
 
 pkgname=libmatroska
-pkgver=1.0.0
-pkgrel=2
+pkgver=1.3.0
+pkgrel=1
 pkgdesc="Matroska library"
 arch=('i686' 'x86_64')
 license=('LGPL')
@@ -20,4 +20,4 @@ package() {
  cd ${srcdir}/${pkgname}-${pkgver}/make/linux
  make prefix=${pkgdir}/usr install
 }
-md5sums=('4efcf3945b17a6f0320cf1aaa326a4de')
+md5sums=('f4a8c411f09d39c754eb726efd616043')
-- 
cgit v0.12


From 054789aa67c95eb212c020fa1c92d5191e7fb153 Mon Sep 17 00:00:00 2001
From: Michael Hanson <mihanson@linhes.org>
Date: Sat, 8 Oct 2011 20:22:17 +0000
Subject: mkvtoolnix: update to 5.0.0

---
 abs/extra/mkvtoolnix/PKGBUILD | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

diff --git a/abs/extra/mkvtoolnix/PKGBUILD b/abs/extra/mkvtoolnix/PKGBUILD
index 497670c..8e0a951 100644
--- a/abs/extra/mkvtoolnix/PKGBUILD
+++ b/abs/extra/mkvtoolnix/PKGBUILD
@@ -3,13 +3,14 @@
 # Contributor: 03/08/04 <lefungus@altern.org>
 
 pkgname=mkvtoolnix
-pkgver=4.9.1
-pkgrel=2
+pkgver=5.0.0
+pkgrel=1
 pkgdesc="Set of tools to create, edit and inspect Matroska files"
 arch=('i686' 'x86_64')
 license=('GPL2')
 url="http://www.bunkus.org/videotools/mkvtoolnix/index.html"
 depends=('libmatroska>=1.0.0' 'libebml>=1.0.0' 'flac>=1.1.4' 'libvorbis' 'wxgtk>=2.8.0.1' 'file' 'boost' 'lzo2' 'qt')
+makedepends=('ruby' 'libcroco')
 source=("http://www.bunkus.org/videotools/${pkgname}/sources/${pkgname}-${pkgver}.tar.bz2")
 
 build() {
@@ -23,4 +24,4 @@ package() {
   cd ${srcdir}/${pkgname}-${pkgver}
   ./drake DESTDIR=${pkgdir} install
 }
-md5sums=('5981f266e6d25da4a49f7464e4a97cdf')
+md5sums=('8a8d29c3b0eb202bb32ea44c54aeb83b')
-- 
cgit v0.12


From 768773a2f3c0d188ee8b697a26880078dbd784f2 Mon Sep 17 00:00:00 2001
From: Britney Fransen <brfransen@gmail.com>
Date: Mon, 10 Oct 2011 18:48:22 -0500
Subject: mythtv: add Cancel Updates menu and simplify update menus

---
 abs/core/mythtv/stable-0.24/mythtv/PKGBUILD             |  2 +-
 abs/core/mythtv/stable-0.24/mythtv/menu-xml/update.xml  | 15 ++-------------
 abs/core/mythtv/stable-0.24/mythtv/menu-xml/update2.xml | 12 +++---------
 3 files changed, 6 insertions(+), 23 deletions(-)

diff --git a/abs/core/mythtv/stable-0.24/mythtv/PKGBUILD b/abs/core/mythtv/stable-0.24/mythtv/PKGBUILD
index b79cb66..cf504eb 100755
--- a/abs/core/mythtv/stable-0.24/mythtv/PKGBUILD
+++ b/abs/core/mythtv/stable-0.24/mythtv/PKGBUILD
@@ -6,7 +6,7 @@
 
 pkgname=mythtv
 pkgver=0.24
-pkgrel=23
+pkgrel=24
 pkgdesc="A Homebrew PVR project"
 arch=('i686' 'x86_64')
 url="http://www.mythtv.org/"
diff --git a/abs/core/mythtv/stable-0.24/mythtv/menu-xml/update.xml b/abs/core/mythtv/stable-0.24/mythtv/menu-xml/update.xml
index 5b28833..d2ac3fe 100644
--- a/abs/core/mythtv/stable-0.24/mythtv/menu-xml/update.xml
+++ b/abs/core/mythtv/stable-0.24/mythtv/menu-xml/update.xml
@@ -2,19 +2,8 @@
 
    <button>
      <type>UPGRADE</type>
-     <text>Check for updates?</text>
-     <action>NONE</action>
-   </button>
-
-   <button>
-     <type>UPGRADE</type>
-     <text>Yes</text>
+     <text>Check for Updates</text>
      <action>EXEC sudo /usr/LH/bin/linhes_update.sh</action>
    </button>
-   
-   <button>
-     <type>UPGRADE</type>
-     <text>No</text>
-     <action>UPMENU</action>
-   </button>
+
 </mythmenu>
diff --git a/abs/core/mythtv/stable-0.24/mythtv/menu-xml/update2.xml b/abs/core/mythtv/stable-0.24/mythtv/menu-xml/update2.xml
index e4a443d..64388cb 100644
--- a/abs/core/mythtv/stable-0.24/mythtv/menu-xml/update2.xml
+++ b/abs/core/mythtv/stable-0.24/mythtv/menu-xml/update2.xml
@@ -2,21 +2,15 @@
 
    <button>
      <type>UPGRADE</type>
-     <text>Install Updates?</text>
-     <action>NONE</action>
+     <text>Install Updates</text>
+     <action>EXEC sudo /usr/LH/bin/linhes_update2.sh install</action>
    </button>
 
    <button>
      <type>UPGRADE</type>
-     <text>Yes</text>
+     <text>Cancel Updates</text>
      <action>EXEC sudo /usr/LH/bin/linhes_update2.sh</action>
    </button>
-   
-   <button>
-     <type>UPGRADE</type>
-     <text>No</text>
-     <action>UPMENU</action>
-   </button>
 
    <button>
      <type>UPGRADE</type>
-- 
cgit v0.12


From 2ad886571e3ebde1783e0169cad40da272432a31 Mon Sep 17 00:00:00 2001
From: Britney Fransen <brfransen@gmail.com>
Date: Mon, 10 Oct 2011 20:07:13 -0500
Subject: linhes-scripts: linhes_update2.sh: add ability to cancel updates;
 installs with install argument.

---
 abs/core/linhes-scripts/PKGBUILD          |  4 +--
 abs/core/linhes-scripts/linhes_update2.sh | 56 +++++++++++++++++--------------
 2 files changed, 32 insertions(+), 28 deletions(-)

diff --git a/abs/core/linhes-scripts/PKGBUILD b/abs/core/linhes-scripts/PKGBUILD
index f0ca1a6..e8aebcc 100644
--- a/abs/core/linhes-scripts/PKGBUILD
+++ b/abs/core/linhes-scripts/PKGBUILD
@@ -3,7 +3,7 @@
 
 pkgname=linhes-scripts
 pkgver=7
-pkgrel=10
+pkgrel=11
 pkgdesc="Various scripts that help to make LinHES, LinHES."
 arch=('i686' 'x86_64')
 license=('GPL2')
@@ -79,7 +79,7 @@ md5sums=('f56985b2d602e11dc1e10d3e7848b2a5'
          'b2c3dd48a4abb976eda2d5fbf22a173a'
          'b527b01d119d3bc33b8fa69bdf1082bb'
          'f691c2bdf5da5455c9a5c2ab0ee1f820'
-         '253d5c9249fbf4641dbf82368efac7cb'
+         'a2786dd6fb70332c9f2f6d1737e7ac44'
          '460861e6d0cf999629b734912eea0acf'
          'ccca6bdbbd86b203a3eecdbbe363e701'
          '65629302a4d2c3adf88cdf0ebc10d493'
diff --git a/abs/core/linhes-scripts/linhes_update2.sh b/abs/core/linhes-scripts/linhes_update2.sh
index 78a0519..a48a996 100644
--- a/abs/core/linhes-scripts/linhes_update2.sh
+++ b/abs/core/linhes-scripts/linhes_update2.sh
@@ -11,33 +11,37 @@
 }
 #----------------------------------------------------------------------------
 
-killall -9 osd_cat
-echo -e "Updating..." | osd_cat --pos=middle --align=center --delay=300000 --color=$color --outline=$outline --outlinecolour=$outlinecolour --shadow=$shadow --shadowcolour=$shadowcolour --font=$font & 
-echo -e "Updating..." | osd_cat --pos=middle --align=center --delay=300000 --color=$color --outline=$outline --outlinecolour=$outlinecolour --shadow=$shadow --shadowcolour=$shadowcolour --font=$font & 
-sudo pacman -Suf --noconfirm && sudo killall -9 osd_cat
-if grep -q Check\ for\ updates /usr/share/mythtv/themes/defaultmenu/linhes.xml
+if [[ "$1" = "install" ]]
 then
-rm -fr /tmp/to_be_upgraded
-killall -9 osd_cat
-echo -e "\nUpdate complete." | osd_cat --pos=middle --align=center --delay=3 --color=$color --outline=$outline --outlinecolour=$outlinecolour --shadow=$shadow --shadowcolour=$shadowcolour --font=$font &
-echo -e "\nUpdate complete." | osd_cat --pos=middle --align=center --delay=3 --color=$color --outline=$outline --outlinecolour=$outlinecolour --shadow=$shadow --shadowcolour=$shadowcolour --font=$font &
+	killall -9 osd_cat
+	echo -e "Updating..." | osd_cat --pos=middle --align=center --delay=300000 --color=$color --outline=$outline --outlinecolour=$outlinecolour --shadow=$shadow --shadowcolour=$shadowcolour --font=$font & 
+	echo -e "Updating..." | osd_cat --pos=middle --align=center --delay=300000 --color=$color --outline=$outline --outlinecolour=$outlinecolour --shadow=$shadow --shadowcolour=$shadowcolour --font=$font &
+	sudo pacman -Suf --noconfirm && sudo killall -9 osd_cat
+	killall -9 osd_cat
+	echo -e "\nUpdates complete." | osd_cat --pos=middle --align=center --delay=3 --color=$color --outline=$outline --outlinecolour=$outlinecolour --shadow=$shadow --shadowcolour=$shadowcolour --font=$font &
+	echo -e "\nUpdates complete." | osd_cat --pos=middle --align=center --delay=3 --color=$color --outline=$outline --outlinecolour=$outlinecolour --shadow=$shadow --shadowcolour=$shadowcolour --font=$font &
 else
-mv /usr/share/mythtv/themes/defaultmenu/linhes.xml /tmp/linhes.xml.tmp
-sed -e '/\#UpdatesAv/,/\#UpdatesAv/d' < /tmp/linhes.xml.tmp > /usr/share/mythtv/themes/defaultmenu/linhes.xml
-mv /usr/share/mythtv/themes/defaultmenu/linhes.xml /tmp
-grep -v -e /mythmenu /tmp/linhes.xml > /tmp/linhes.xml.tmp
-echo "<!--#Check for updates-->" >> /tmp/linhes.xml.tmp
-echo "   <button>" >> /tmp/linhes.xml.tmp
-echo "     <type>UPGRADE</type>" >> /tmp/linhes.xml.tmp
-echo "     <text>Update LinHES</text>" >> /tmp/linhes.xml.tmp
-echo "     <action>MENU update.xml</action>" >> /tmp/linhes.xml.tmp
-echo "   </button>" >> /tmp/linhes.xml.tmp
-echo "<!--#Check for updates-->" >> /tmp/linhes.xml.tmp
-echo "" >> /tmp/linhes.xml.tmp
-echo "</mythmenu>" >> /tmp/linhes.xml.tmp
-mv /tmp/linhes.xml.tmp /usr/share/mythtv/themes/defaultmenu/linhes.xml
+	killall -9 osd_cat
+	echo -e "\nUpdates canceled." | osd_cat --pos=middle --align=center --delay=3 --color=$color --outline=$outline --outlinecolour=$outlinecolour --shadow=$shadow --shadowcolour=$shadowcolour --font=$font &
+	echo -e "\nUpdates canceled." | osd_cat --pos=middle --align=center --delay=3 --color=$color --outline=$outline --outlinecolour=$outlinecolour --shadow=$shadow --shadowcolour=$shadowcolour --font=$font &
+fi
+
 rm -fr /tmp/to_be_upgraded
-killall -9 osd_cat
-echo -e "\nUpdate complete." | osd_cat --pos=middle --align=center --delay=3 --color=$color --outline=$outline --outlinecolour=$outlinecolour --shadow=$shadow --shadowcolour=$shadowcolour --font=$font &
-echo -e "\nUpdate complete." | osd_cat --pos=middle --align=center --delay=3 --color=$color --outline=$outline --outlinecolour=$outlinecolour --shadow=$shadow --shadowcolour=$shadowcolour --font=$font &
+
+if grep -q Updates\ Available /usr/share/mythtv/themes/defaultmenu/linhes.xml
+then
+	mv /usr/share/mythtv/themes/defaultmenu/linhes.xml /tmp/linhes.xml.tmp
+	sed -e '/\#UpdatesAv/,/\#UpdatesAv/d' < /tmp/linhes.xml.tmp > /usr/share/mythtv/themes/defaultmenu/linhes.xml
+	mv /usr/share/mythtv/themes/defaultmenu/linhes.xml /tmp
+	grep -v -e /mythmenu /tmp/linhes.xml > /tmp/linhes.xml.tmp
+	echo "<!--#Check for updates-->" >> /tmp/linhes.xml.tmp
+	echo "   <button>" >> /tmp/linhes.xml.tmp
+	echo "     <type>UPGRADE</type>" >> /tmp/linhes.xml.tmp
+	echo "     <text>Update LinHES</text>" >> /tmp/linhes.xml.tmp
+	echo "     <action>MENU update.xml</action>" >> /tmp/linhes.xml.tmp
+	echo "   </button>" >> /tmp/linhes.xml.tmp
+	echo "<!--#Check for updates-->" >> /tmp/linhes.xml.tmp
+	echo "" >> /tmp/linhes.xml.tmp
+	echo "</mythmenu>" >> /tmp/linhes.xml.tmp
+	mv /tmp/linhes.xml.tmp /usr/share/mythtv/themes/defaultmenu/linhes.xml
 fi
-- 
cgit v0.12


From 051374fedc85801bc60ab5aed340fb53894ce8ad Mon Sep 17 00:00:00 2001
From: Michael Hanson <mihanson@linhes.org>
Date: Tue, 11 Oct 2011 02:09:16 +0000
Subject: mkvtoolnix: upgrade to 5.0.1

---
 abs/extra/mkvtoolnix/PKGBUILD | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/abs/extra/mkvtoolnix/PKGBUILD b/abs/extra/mkvtoolnix/PKGBUILD
index 8e0a951..f77ecd6 100644
--- a/abs/extra/mkvtoolnix/PKGBUILD
+++ b/abs/extra/mkvtoolnix/PKGBUILD
@@ -3,7 +3,7 @@
 # Contributor: 03/08/04 <lefungus@altern.org>
 
 pkgname=mkvtoolnix
-pkgver=5.0.0
+pkgver=5.0.1
 pkgrel=1
 pkgdesc="Set of tools to create, edit and inspect Matroska files"
 arch=('i686' 'x86_64')
@@ -24,4 +24,4 @@ package() {
   cd ${srcdir}/${pkgname}-${pkgver}
   ./drake DESTDIR=${pkgdir} install
 }
-md5sums=('8a8d29c3b0eb202bb32ea44c54aeb83b')
+md5sums=('93fbbe946de6013eca699c0c2a93a4e9')
-- 
cgit v0.12


From bf2399e6a12b828a9ba70da2c911edcf88f9d726 Mon Sep 17 00:00:00 2001
From: Michael Hanson <mihanson@linhes.org>
Date: Tue, 11 Oct 2011 02:09:37 +0000
Subject: transmission-cli: upgrade to 2.41

---
 abs/extra/community/transmission-cli/PKGBUILD | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/abs/extra/community/transmission-cli/PKGBUILD b/abs/extra/community/transmission-cli/PKGBUILD
index 40053ce..eb3ed9a 100644
--- a/abs/extra/community/transmission-cli/PKGBUILD
+++ b/abs/extra/community/transmission-cli/PKGBUILD
@@ -3,14 +3,14 @@
 # Contributor: Alessio 'mOLOk' Bolognino <themolok@gmail.com>
 
 pkgname=transmission-cli
-pkgver=2.33
+pkgver=2.41
 pkgrel=1
 pkgdesc="Fast, easy, and free BitTorrent client (CLI tools, daemon and web client)"
 arch=('i686' 'x86_64')
 url="http://www.transmissionbt.com/"
 license=('MIT')
 depends=('curl' 'libevent>=2.0.10')
-makedepends=('intltool')
+makedepends=('intltool' 'libcroco')
 replaces=('transmission')
 backup=('etc/conf.d/transmissiond')
 install=transmission-cli.install
@@ -38,7 +38,7 @@ package() {
   install -D -m644 "$srcdir/transmission.include" "$pkgdir/etc/transmission/transmission.include" || return 1
   install -D -m644 COPYING "$pkgdir/usr/share/licenses/transmission-cli/COPYING" || return 1
 }
-md5sums=('082217a65713ac879410c622cbe6eb26'
+md5sums=('799b7bb24e236dbbdc86275f89ea9e67'
          'b91534aaf2e403331c611c615ab2c03d'
          'ff22c13dbd52565f9e88b1de22514eb9'
          'b5a49ea375333cd0fee40f70dbac4c2e'
-- 
cgit v0.12


From 7177d96f8ee72a4f97cd7c927fffad2927030328 Mon Sep 17 00:00:00 2001
From: Michael Hanson <mihanson@linhes.org>
Date: Tue, 11 Oct 2011 02:15:11 +0000
Subject: transmission-cli: fix the run file - thx to Frederic Dumas

---
 abs/extra/community/transmission-cli/PKGBUILD          | 4 ++--
 abs/extra/community/transmission-cli/run.transmissiond | 2 +-
 2 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/abs/extra/community/transmission-cli/PKGBUILD b/abs/extra/community/transmission-cli/PKGBUILD
index eb3ed9a..09609f9 100644
--- a/abs/extra/community/transmission-cli/PKGBUILD
+++ b/abs/extra/community/transmission-cli/PKGBUILD
@@ -4,7 +4,7 @@
 
 pkgname=transmission-cli
 pkgver=2.41
-pkgrel=1
+pkgrel=2
 pkgdesc="Fast, easy, and free BitTorrent client (CLI tools, daemon and web client)"
 arch=('i686' 'x86_64')
 url="http://www.transmissionbt.com/"
@@ -39,7 +39,7 @@ package() {
   install -D -m644 COPYING "$pkgdir/usr/share/licenses/transmission-cli/COPYING" || return 1
 }
 md5sums=('799b7bb24e236dbbdc86275f89ea9e67'
-         'b91534aaf2e403331c611c615ab2c03d'
+         'e876d24b99c401f782395b053976dffd'
          'ff22c13dbd52565f9e88b1de22514eb9'
          'b5a49ea375333cd0fee40f70dbac4c2e'
          'd05567c7a4f9df9f28602d1356d5c05c')
diff --git a/abs/extra/community/transmission-cli/run.transmissiond b/abs/extra/community/transmission-cli/run.transmissiond
index 714c946..792594a 100755
--- a/abs/extra/community/transmission-cli/run.transmissiond
+++ b/abs/extra/community/transmission-cli/run.transmissiond
@@ -13,7 +13,7 @@ PID=`pidof -o %PPID /usr/bin/transmission-daemon`
              if [ ! -f ${CONFIGDIR}/blocklists/level1 ]; then
                 # update blocklist
                # echo "updating blocklist, ~4MB"
-                wget -q -O level1.gz http://download.m0k.org/transmission/files/level1.gz
+                wget -q -O level1.gz http://www.bluetack.co.uk/config/level1.gz
                 if [ -f level1.gz ]; then
                   gunzip level1.gz
                   if [ $? -eq 0 ]; then
-- 
cgit v0.12


From 33b16078be993273a17490689c32a32d88ecb14a Mon Sep 17 00:00:00 2001
From: Michael Hanson <mihanson@linhes.org>
Date: Wed, 12 Oct 2011 01:40:10 +0000
Subject: twisted: compile against python2.6 Ref #785

---
 abs/extra/community/twisted/PKGBUILD | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/abs/extra/community/twisted/PKGBUILD b/abs/extra/community/twisted/PKGBUILD
index e008e92..c197c57 100644
--- a/abs/extra/community/twisted/PKGBUILD
+++ b/abs/extra/community/twisted/PKGBUILD
@@ -5,7 +5,7 @@
 
 pkgname=twisted
 pkgver=10.1.0
-pkgrel=1
+pkgrel=2
 pkgdesc="Asynchronous networking framework written in Python."
 arch=('i686' 'x86_64')
 url="http://twistedmatrix.com/"
@@ -23,7 +23,7 @@ build() {
   install -D -m644 LICENSE "${pkgdir}/usr/share/licenses/$pkgname/LICENSE"
 
   sed -e 's|#!/usr/bin/env python|#!/usr/bin/env python2|' \
-      -i ${pkgdir}/usr/lib/python2.7/site-packages/twisted/trial/test/scripttest.py
+      -i ${pkgdir}/usr/lib/python2.6/site-packages/twisted/trial/test/scripttest.py
   sed -e 's|#!/usr/bin/env python|#!/usr/bin/env python2|' \
-      -i ${pkgdir}/usr/lib/python2.7/site-packages/twisted/mail/test/pop3testserver.py
+      -i ${pkgdir}/usr/lib/python2.6/site-packages/twisted/mail/test/pop3testserver.py
 }
-- 
cgit v0.12


From 12508fdd46f0e5131fb35a46a847ab814220cd8b Mon Sep 17 00:00:00 2001
From: Michael Hanson <mihanson@linhes.org>
Date: Wed, 12 Oct 2011 01:44:32 +0000
Subject: twisted: missed a python2.7 reference in the install file.

---
 abs/extra/community/twisted/PKGBUILD        | 2 +-
 abs/extra/community/twisted/twisted.install | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/abs/extra/community/twisted/PKGBUILD b/abs/extra/community/twisted/PKGBUILD
index c197c57..13fca6b 100644
--- a/abs/extra/community/twisted/PKGBUILD
+++ b/abs/extra/community/twisted/PKGBUILD
@@ -5,7 +5,7 @@
 
 pkgname=twisted
 pkgver=10.1.0
-pkgrel=2
+pkgrel=3
 pkgdesc="Asynchronous networking framework written in Python."
 arch=('i686' 'x86_64')
 url="http://twistedmatrix.com/"
diff --git a/abs/extra/community/twisted/twisted.install b/abs/extra/community/twisted/twisted.install
index 8e93ffd..62a2cc5 100644
--- a/abs/extra/community/twisted/twisted.install
+++ b/abs/extra/community/twisted/twisted.install
@@ -7,5 +7,5 @@ post_upgrade() {
 }
 
 post_remove() {
-  find /usr/lib/python2.7/site-packages/twisted/plugins -name dropin.cache | xargs -r rm -f
+  find /usr/lib/python2.6/site-packages/twisted/plugins -name dropin.cache | xargs -r rm -f
 }
-- 
cgit v0.12


From 4cb90e85c107f4a6c7ab1ac92d024f89b084f527 Mon Sep 17 00:00:00 2001
From: Britney Fransen <brfransen@gmail.com>
Date: Thu, 13 Oct 2011 16:28:16 -0500
Subject: LinHES-config: README: add URL to Install Guide

---
 abs/core/LinHES-config/PKGBUILD | 4 ++--
 abs/core/LinHES-config/README   | 5 ++++-
 2 files changed, 6 insertions(+), 3 deletions(-)

diff --git a/abs/core/LinHES-config/PKGBUILD b/abs/core/LinHES-config/PKGBUILD
index 96771e2..a686394 100644
--- a/abs/core/LinHES-config/PKGBUILD
+++ b/abs/core/LinHES-config/PKGBUILD
@@ -1,6 +1,6 @@
 pkgname=LinHES-config
 pkgver=2.3
-pkgrel=9
+pkgrel=10
 conflicts=(MythVantage-config MythVantage-config-dev LinHES-config-dev LinHes-config )
 pkgdesc="Install and configure your system"
 depends=('bc' 'libstatgrab'  'mysql-python' 'expect' 'curl' 'dnsutils' 'parted'
@@ -121,7 +121,7 @@ md5sums=('6259677916192a92d1adf47b276f7829'
          'a225143e3df6f56d451c2875e54ddbae'
          '9151c74fcaf18ec4cf5e757cfdbc7017'
          '3d1e4a119f38cff0498bf8a67e94e4b3'
-         'fb80a58b1b4cfb26aee48bc991162b40'
+         'd6c2d07c58ca6484c5be8b7093b921cd'
          'e6538618f7bb5fb6b79c132803451c39'
          '41b03fb1e0a9d9ae7588e3b813212772'
          'b845de3e05c1734cce4b9ac5e8f1baaf'
diff --git a/abs/core/LinHES-config/README b/abs/core/LinHES-config/README
index 65a89d2..915e72e 100644
--- a/abs/core/LinHES-config/README
+++ b/abs/core/LinHES-config/README
@@ -1,4 +1,7 @@
-Thanks for choosing LinHES!  At the moment, LinHES is compiled for i686. 
+Thanks for choosing LinHES!
+
+Detailed Installation Guide:
+http://linhes.org/bugs/projects/linhes/wiki/Install_LinHES
 
 Support for LinHES can be obtained at:
 http://linhes.org
-- 
cgit v0.12


From 81204ffbed9e519db171c62653b91a170a2ae299 Mon Sep 17 00:00:00 2001
From: Britney Fransen <brfransen@gmail.com>
Date: Sat, 15 Oct 2011 16:12:28 -0500
Subject: LinHES-config: xconfig.sh: redirect pacman output

---
 abs/core/LinHES-config/PKGBUILD   |  4 ++--
 abs/core/LinHES-config/xconfig.sh | 12 ++----------
 2 files changed, 4 insertions(+), 12 deletions(-)

diff --git a/abs/core/LinHES-config/PKGBUILD b/abs/core/LinHES-config/PKGBUILD
index a686394..a4e3577 100644
--- a/abs/core/LinHES-config/PKGBUILD
+++ b/abs/core/LinHES-config/PKGBUILD
@@ -1,6 +1,6 @@
 pkgname=LinHES-config
 pkgver=2.3
-pkgrel=10
+pkgrel=11
 conflicts=(MythVantage-config MythVantage-config-dev LinHES-config-dev LinHes-config )
 pkgdesc="Install and configure your system"
 depends=('bc' 'libstatgrab'  'mysql-python' 'expect' 'curl' 'dnsutils' 'parted'
@@ -110,7 +110,7 @@ md5sums=('6259677916192a92d1adf47b276f7829'
          'c20f73d4da5d7e15e1f3eb85c7dcb49a'
          '8ac1cfd2eca0f641737da0d0aca416a7'
          '9ae8d79f620c6d19973c55c32a921874'
-         'ad2ba000decfc1e50533692f1793e620'
+         'dc04df2556b916302f8b37176a5f05b3'
          'ecf9e5df20683a769c4a8a8f2d65de85'
          'e459ed069317bccb20351f037a9df3d2'
          '97de45a04f4efbd9d40d9fc0e1db1c3f'
diff --git a/abs/core/LinHES-config/xconfig.sh b/abs/core/LinHES-config/xconfig.sh
index 11aedf5..2e5e949 100755
--- a/abs/core/LinHES-config/xconfig.sh
+++ b/abs/core/LinHES-config/xconfig.sh
@@ -204,10 +204,8 @@ function nvidia_prepare {
 
     for i in `echo ${NVPKGS}`
     do
-         echo $i
-          pacman --noconfirm  -Rc $i
-     #     echo pacman -R $NVPKGS
-          #pacman -R $NVPKGS
+        echo "Removing $i"
+        pacman --noconfirm  -Rc $i > /dev/null 2>&1
     done
 
 
@@ -228,8 +226,6 @@ function nvidia_driver_install {
             then
                 #install latest drivers
                 echo "installing current nvidia drivers"
-              #  pacman --noconfirm  -Rd libgl > /dev/null 2>&1
-              #  pacman --noconfirm  -R $NVPKGS > /dev/null 2>&1
                 nvidia_prepare
                 pacman --noconfirm  -S nvidia nvidia-utils > /dev/null 2>&1
             fi
@@ -241,8 +237,6 @@ function nvidia_driver_install {
             then
                 #install 96xx drivers
                 echo "installing nvidia 96xx drivers"
-# #                 pacman --noconfirm  -Rd libgl > /dev/null 2>&1
-# #                 pacman --noconfirm  -R $NVPKGS > /dev/null 2>&1
                 nvidia_prepare
                 pacman --noconfirm  -S nvidia-96xx nvidia-96xx-utils  > /dev/null 2>&1
             fi
@@ -252,8 +246,6 @@ function nvidia_driver_install {
             then
                 #install latest drivers
                 echo "installing 173 nvidia drivers"
-#                 pacman --noconfirm  -Rd libgl > /dev/null 2>&1
-#                 pacman --noconfirm  -R $NVPKGS > /dev/null 2>&1
                 nvidia_prepare
                 pacman --noconfirm  -S nvidia-173xx nvidia-173xx-utils > /dev/null 2>&1
             fi
-- 
cgit v0.12


From ee1df8d21bd61872c711ee95a1b56bd261eef082 Mon Sep 17 00:00:00 2001
From: Britney Fransen <brfransen@gmail.com>
Date: Sat, 15 Oct 2011 18:47:42 -0500
Subject: mysql: update to 5.1.59; change settings for better performance

---
 abs/core/mysql/PKGBUILD |  6 +++---
 abs/core/mysql/my.cnf   | 39 ++++++++++++++++++++++++++-------------
 2 files changed, 29 insertions(+), 16 deletions(-)

diff --git a/abs/core/mysql/PKGBUILD b/abs/core/mysql/PKGBUILD
index 9602157..3ce1aeb 100644
--- a/abs/core/mysql/PKGBUILD
+++ b/abs/core/mysql/PKGBUILD
@@ -5,7 +5,7 @@
 
 pkgbase=mysql
 pkgname=('libmysqlclient' 'mysql-clients' 'mysql')
-pkgver=5.1.52
+pkgver=5.1.59
 pkgrel=1
 arch=('i686' 'x86_64')
 license=('GPL')
@@ -103,7 +103,7 @@ package_mysql(){
   rm -rf ${pkgdir}/usr/{mysql-test,sql-bench}
   rm -f ${pkgdir}/usr/lib/mysql/plugin/*.a
 }
-md5sums=('43c11ad3dded693393c4815d24e2b0a5'
+md5sums=('1e89816164692f44f768024db4bc05f6'
          '2234207625baa29b2ff7d7b4f088abce'
-         '175b269b665019689d786f5af0968046'
+         'd60099985e68e36b156423fca6b50924'
          'a97e574945e19de3908575b956241026')
diff --git a/abs/core/mysql/my.cnf b/abs/core/mysql/my.cnf
index 4eaeaa0..6f0a683 100644
--- a/abs/core/mysql/my.cnf
+++ b/abs/core/mysql/my.cnf
@@ -1,12 +1,17 @@
-# mysql config file for medium systems.
+# Example MySQL config file for large systems.
 #
-# This is for a system with little memory (32M - 64M) where MySQL plays
-# a important part and systems up to 128M where MySQL is used together with
-# other programs (like a web server)
+# This is for a large system with memory = 512M where the system runs mainly
+# MySQL.
 #
-# One can in this file use all long options that the program supports.
-# If you want to know which options a program support, run the program
-# with --help option.
+# You can copy this file to
+# /etc/my.cnf to set global options,
+# mysql-data-dir/my.cnf to set server-specific options (in this
+# installation this directory is /var) or
+# ~/.my.cnf to set user-specific options.
+#
+# In this file, you can use all long options that a program supports.
+# If you want to know which options a program supports, run the program
+# with the "--help" option.
 
 # The following options will be passed to all MySQL clients
 [client]
@@ -21,13 +26,21 @@ socket		= /var/run/mysqld/mysqld.sock
 port		= 3306
 socket		= /var/run/mysqld/mysqld.sock
 datadir		= /data/srv/mysql
-skip-external-locking
-key_buffer = 16M
+skip-locking
+key_buffer_size = 80M
 max_allowed_packet = 1M
-table_cache = 64
-sort_buffer_size = 512K
-net_buffer_length = 16K
-myisam_sort_buffer_size = 8M
+table_open_cache = 256
+tmp_table_size = 16M
+max_heap_table_size = 16M
+sort_buffer_size = 1M
+read_buffer_size = 1M
+read_rnd_buffer_size = 4M
+myisam_sort_buffer_size = 64M
+thread_cache_size = 8
+query_cache_size = 16M
+join_buffer_size = 128K
+# Try number of CPU's*2 for thread_concurrency
+#thread_concurrency = 8
 
 # Don't listen on a TCP/IP port at all. This can be a security enhancement,
 # if all processes that need to connect to mysqld run on the same host.
-- 
cgit v0.12


From f7dc525a41cf7c6ed500ed48a8c3dde4e6d85f4e Mon Sep 17 00:00:00 2001
From: Britney Fransen <brfransen@gmail.com>
Date: Sat, 15 Oct 2011 21:27:39 -0500
Subject: webmin: update to latest

---
 abs/extra/webmin/PKGBUILD | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/abs/extra/webmin/PKGBUILD b/abs/extra/webmin/PKGBUILD
index 24834e1..f022902 100644
--- a/abs/extra/webmin/PKGBUILD
+++ b/abs/extra/webmin/PKGBUILD
@@ -1,7 +1,7 @@
 # $Id$
 # Maintainer: Tobias Powalowski <tpowa@archlinux.org>
 pkgname=webmin
-pkgver=1.550
+pkgver=1.570
 pkgrel=1
 pkgdesc="a web-based interface for system administration"
 arch=(i686 x86_64)
@@ -219,7 +219,7 @@ build() {
   install -m 644 -D $startdir/src/$pkgname-$pkgver/LICENCE $startdir/pkg/usr/share/licenses/webmin/LICENCE
 }
 
-md5sums=('d892599a6e3e6f102a8261d2804fb1b5'
+md5sums=('20b4f488637366c39458b9b93162eff3'
          'da6bea412a5be8cf82a813078fec5847'
          'bfebb75bb94029b48c46b7f1ba1aa811'
          '0673e51af0e81418b4a6c1e205f7e5cd'
-- 
cgit v0.12


From c65b741914b31ac88086e363edc4415eb6aa1686 Mon Sep 17 00:00:00 2001
From: Britney Fransen <brfransen@gmail.com>
Date: Sun, 16 Oct 2011 12:20:31 -0500
Subject: LinHES-config: xconfig.sh: quiet output more

---
 abs/core/LinHES-config/PKGBUILD   | 4 ++--
 abs/core/LinHES-config/xconfig.sh | 4 ++--
 2 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/abs/core/LinHES-config/PKGBUILD b/abs/core/LinHES-config/PKGBUILD
index a4e3577..81d0fb6 100644
--- a/abs/core/LinHES-config/PKGBUILD
+++ b/abs/core/LinHES-config/PKGBUILD
@@ -1,6 +1,6 @@
 pkgname=LinHES-config
 pkgver=2.3
-pkgrel=11
+pkgrel=12
 conflicts=(MythVantage-config MythVantage-config-dev LinHES-config-dev LinHes-config )
 pkgdesc="Install and configure your system"
 depends=('bc' 'libstatgrab'  'mysql-python' 'expect' 'curl' 'dnsutils' 'parted'
@@ -110,7 +110,7 @@ md5sums=('6259677916192a92d1adf47b276f7829'
          'c20f73d4da5d7e15e1f3eb85c7dcb49a'
          '8ac1cfd2eca0f641737da0d0aca416a7'
          '9ae8d79f620c6d19973c55c32a921874'
-         'dc04df2556b916302f8b37176a5f05b3'
+         '287c91018794963a52510273f08d3de7'
          'ecf9e5df20683a769c4a8a8f2d65de85'
          'e459ed069317bccb20351f037a9df3d2'
          '97de45a04f4efbd9d40d9fc0e1db1c3f'
diff --git a/abs/core/LinHES-config/xconfig.sh b/abs/core/LinHES-config/xconfig.sh
index 2e5e949..c43c1e5 100755
--- a/abs/core/LinHES-config/xconfig.sh
+++ b/abs/core/LinHES-config/xconfig.sh
@@ -198,13 +198,13 @@ function setupAdvancedX {
 function nvidia_prepare {
     for i in libgl nvidia nvidia-utils nvidia-173xx nvidia-173xx-utils nvidia-96xx nvidia-96xx-utils
     do
-        echo "Removing $i"
+#        echo "Removing $i"
         pacman --noconfirm -Rdd $i > /dev/null 2>&1    
     done
 
     for i in `echo ${NVPKGS}`
     do
-        echo "Removing $i"
+#        echo "Removing $i"
         pacman --noconfirm  -Rc $i > /dev/null 2>&1
     done
 
-- 
cgit v0.12

