aboutsummaryrefslogtreecommitdiff
path: root/misc
diff options
context:
space:
mode:
authorB. Watson <yalhcru@gmail.com>2021-09-10 17:41:06 -0400
committerWilly Sudiarto Raharjo <willysr@slackbuilds.org>2021-10-13 00:52:15 +0700
commitc1aa510291fa5c182ce36e27fd931b4498317e09 (patch)
treeb6b1dde0586303dc856386883111a96e47a0b25b /misc
parent0834001c4fd255181f7677f1524fae0486f1e9f6 (diff)
misc/cwiid: Updated for version 0.6.91_2.
Signed-off-by: B. Watson <yalhcru@gmail.com> Signed-off-by: Willy Sudiarto Raharjo <willysr@slackbuilds.org>
Diffstat (limited to 'misc')
-rw-r--r--misc/cwiid/README2
-rw-r--r--misc/cwiid/add_other_plugins_#487498.patch394
-rw-r--r--misc/cwiid/bluetooth-linker.patch48
-rw-r--r--misc/cwiid/cwiid.SlackBuild83
-rw-r--r--misc/cwiid/cwiid.info10
-rw-r--r--misc/cwiid/doinst.sh4
-rw-r--r--misc/cwiid/lswm.154
-rw-r--r--misc/cwiid/wmgui.desktop11
-rw-r--r--misc/cwiid/wmgui.xpm552
9 files changed, 56 insertions, 1102 deletions
diff --git a/misc/cwiid/README b/misc/cwiid/README
index 1731334a025a..84ea5d363cda 100644
--- a/misc/cwiid/README
+++ b/misc/cwiid/README
@@ -1,3 +1,5 @@
+cwiid (tools for the Nintendo Wii remote)
+
CWiid is a collection of Linux tools written in C for interfacing to the
Nintendo Wiimote, including an event-based API, an event/mouse/joystick
driver, and GUI/control panel.
diff --git a/misc/cwiid/add_other_plugins_#487498.patch b/misc/cwiid/add_other_plugins_#487498.patch
deleted file mode 100644
index c9d28963a10d..000000000000
--- a/misc/cwiid/add_other_plugins_#487498.patch
+++ /dev/null
@@ -1,394 +0,0 @@
-Index: cwiid-0.6.00+svn184.orig/wminput/plugins/Makefile.in
-===================================================================
---- cwiid-0.6.00+svn184.orig.orig/wminput/plugins/Makefile.in 2008-06-24 21:43:05.000000000 +0200
-+++ cwiid-0.6.00+svn184.orig/wminput/plugins/Makefile.in 2009-03-27 13:15:50.000000000 +0100
-@@ -2,7 +2,7 @@
-
- include @top_builddir@/defs.mak
-
--PLUGINS = ir_ptr acc nunchuk_acc led nunchuk_stick2btn
-+PLUGINS = ir_ptr ir_fps acc nunchuk_acc led nunchuk_stick2btn nunchuk_kb
-
- all install clean distclean uninstall: TARGET += $(MAKECMDGOALS)
-
-Index: cwiid-0.6.00+svn184.orig/wminput/plugins/ir_fps/Makefile.in
-===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ cwiid-0.6.00+svn184.orig/wminput/plugins/ir_fps/Makefile.in 2009-03-27 13:15:50.000000000 +0100
-@@ -0,0 +1,15 @@
-+#Copyright (C) 2007 L. Donnie Smith
-+
-+include @top_builddir@/defs.mak
-+
-+PLUGIN_NAME = ir_fps
-+SOURCES = ir_fps.c
-+CFLAGS += -I@top_builddir@/wminput -I@top_builddir@/libcwiid
-+INST_DIR = $(CWIID_PLUGINS_DIR)
-+
-+include $(COMMON)/include/plugin.mak
-+
-+distclean: clean
-+ rm Makefile
-+
-+.PHONY: distclean
-Index: cwiid-0.6.00+svn184.orig/wminput/plugins/ir_fps/ir_fps.c
-===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ cwiid-0.6.00+svn184.orig/wminput/plugins/ir_fps/ir_fps.c 2009-03-27 13:15:50.000000000 +0100
-@@ -0,0 +1,162 @@
-+/* Copyright (C) 2007 L. Donnie Smith <cwiidabstrakraft.org>
-+ *
-+ * 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
-+ *
-+ */
-+
-+#include "wmplugin.h"
-+
-+#define DEBOUNCE_THRESHOLD 50
-+
-+//deadzone is a circle of diameter a 10th of the screen
-+#define DEADZONE (CWIID_IR_X_MAX*CWIID_IR_X_MAX+CWIID_IR_Y_MAX*CWIID_IR_Y_MAX)/100
-+
-+//speed is here
-+#define XSPEED 10/(CWIID_IR_X_MAX/2)
-+#define YSPEED 10/(CWIID_IR_Y_MAX/2)
-+
-+cwiid_wiimote_t *wiimote;
-+
-+static struct wmplugin_info info;
-+static struct wmplugin_data data;
-+
-+wmplugin_info_t wmplugin_info;
-+wmplugin_init_t wmplugin_init;
-+wmplugin_exec_t wmplugin_exec;
-+
-+struct wmplugin_info *wmplugin_info() {
-+ static unsigned char info_init = 0;
-+
-+ if (!info_init) {
-+ info.button_count = 0;
-+ info.axis_count = 2;
-+ info.axis_info[0].name = "X";
-+ info.axis_info[0].type = WMPLUGIN_REL;
-+ info.axis_info[0].max = CWIID_IR_X_MAX;
-+ info.axis_info[0].min = 0;
-+ info.axis_info[0].fuzz = 0;
-+ info.axis_info[0].flat = 0;
-+ info.axis_info[1].name = "Y";
-+ info.axis_info[1].type = WMPLUGIN_REL;
-+ info.axis_info[1].max = CWIID_IR_Y_MAX;
-+ info.axis_info[1].min = 0;
-+ info.axis_info[1].fuzz = 0;
-+ info.axis_info[1].flat = 0;
-+ info.param_count = 0;
-+ info_init = 1;
-+ }
-+ return &info;
-+}
-+
-+int wmplugin_init(int id, cwiid_wiimote_t *arg_wiimote)
-+{
-+ wiimote = arg_wiimote;
-+
-+ data.buttons = 0;
-+
-+ if (wmplugin_set_rpt_mode(id, CWIID_RPT_IR)) {
-+ return -1;
-+ }
-+
-+ return 0;
-+}
-+
-+struct wmplugin_data *wmplugin_exec(int mesg_count, union cwiid_mesg mesg[])
-+{
-+ static int src_index = -1;
-+ static int debounce = 0;
-+ static uint8_t old_flag;
-+
-+ int i;
-+ uint8_t flag;
-+ struct cwiid_ir_mesg *ir_mesg;
-+ int dx, dy;
-+
-+ ir_mesg = NULL;
-+ for (i=0; i < mesg_count; i++) {
-+ if (mesg[i].type == CWIID_MESG_IR) {
-+ ir_mesg = &mesg[i].ir_mesg;
-+ }
-+ }
-+
-+ if (!ir_mesg) {
-+ return NULL;
-+ }
-+
-+ /* invalidate src index if source is no longer present */
-+ if ((src_index != -1) && !ir_mesg->src[src_index].valid) {
-+ if (debounce > DEBOUNCE_THRESHOLD) {
-+ src_index = -1;
-+ }
-+ else {
-+ debounce++;
-+ }
-+ }
-+ else {
-+ debounce = 0;
-+ }
-+
-+ /* of not set, pick largest available source */
-+ if (src_index == -1) {
-+ for (i=0; i < CWIID_IR_SRC_COUNT; i++) {
-+ if (ir_mesg->src[i].valid) {
-+ if ((src_index == -1) ||
-+ (ir_mesg->src[i].size > ir_mesg->src[src_index].size)) {
-+ src_index = i;
-+ }
-+ }
-+ }
-+ }
-+
-+ /* LEDs */
-+ switch (src_index) {
-+ case 0:
-+ flag = CWIID_LED1_ON;
-+ break;
-+ case 1:
-+ flag = CWIID_LED2_ON;
-+ break;
-+ case 2:
-+ flag = CWIID_LED3_ON;
-+ break;
-+ case 3:
-+ flag = CWIID_LED4_ON;
-+ break;
-+ default:
-+ flag = 0;
-+ break;
-+ }
-+ if (flag != old_flag) {
-+ cwiid_set_led(wiimote, flag);
-+ old_flag = flag;
-+ }
-+
-+ if ((src_index == -1) || !ir_mesg->src[src_index].valid) {
-+ data.axes[0].valid = data.axes[1].valid = 0;
-+ }
-+ else {
-+ data.axes[0].valid = data.axes[1].valid = 1;
-+ dx = CWIID_IR_X_MAX/2 - ir_mesg->src[src_index].pos[CWIID_X];
-+ dy = ir_mesg->src[src_index].pos[CWIID_Y] - CWIID_IR_Y_MAX/2;
-+ if (dx*dx+dy*dy > DEADZONE){
-+ data.axes[0].value = dx*XSPEED;
-+ data.axes[1].value = dy*YSPEED;
-+ }else {
-+ data.axes[0].value = 0;
-+ data.axes[1].value = 0;
-+ }
-+ }
-+ return &data;
-+}
-Index: cwiid-0.6.00+svn184.orig/wminput/plugins/nunchuk_kb/Makefile.in
-===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ cwiid-0.6.00+svn184.orig/wminput/plugins/nunchuk_kb/Makefile.in 2009-03-27 13:15:50.000000000 +0100
-@@ -0,0 +1,16 @@
-+#Copyright (C) 2007 L. Donnie Smith
-+
-+include @top_builddir@/defs.mak
-+
-+PLUGIN_NAME = nunchuk_kb
-+SOURCES = nunchuk_kb.c
-+CFLAGS += -I@top_builddir@/wminput -I@top_builddir@/libcwiid
-+LDLIBS += -lm
-+INST_DIR = $(CWIID_PLUGINS_DIR)
-+
-+include $(COMMON)/include/plugin.mak
-+
-+distclean: clean
-+ rm Makefile
-+
-+.PHONY: distclean
-Index: cwiid-0.6.00+svn184.orig/wminput/plugins/nunchuk_kb/nunchuk_kb.c
-===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ cwiid-0.6.00+svn184.orig/wminput/plugins/nunchuk_kb/nunchuk_kb.c 2009-03-27 13:15:50.000000000 +0100
-@@ -0,0 +1,116 @@
-+/* Copyright (C) 2007 L. Donnie Smith <cwiid@abstrakraft.org>
-+ *
-+ * 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
-+ *
-+ */
-+
-+#include <math.h>
-+
-+#include "wmplugin.h"
-+
-+/* Button flags */
-+#define STICK_KEY_UP 0x0001
-+#define STICK_KEY_DOWN 0x0002
-+#define STICK_KEY_RIGHT 0x0004
-+#define STICK_KEY_LEFT 0x0008
-+#define STICK_MID_VAL 128
-+#define STICK_NEUTRAL 20
-+
-+static unsigned char info_init = 0;
-+static struct wmplugin_info info;
-+static struct wmplugin_data data;
-+
-+static cwiid_wiimote_t *wiimote;
-+
-+static struct acc_cal acc_cal;
-+static int plugin_id;
-+
-+wmplugin_info_t wmplugin_info;
-+wmplugin_init_t wmplugin_init;
-+wmplugin_exec_t wmplugin_exec;
-+static void process_nunchuk(struct cwiid_nunchuk_mesg *mesg);
-+
-+static float Roll_Scale = 1.0;
-+static float Pitch_Scale = 1.0;
-+static float X_Scale = 1.0;
-+static float Y_Scale = 1.0;
-+
-+struct wmplugin_info *wmplugin_info() {
-+ if (!info_init) {
-+ info.button_count = 4;
-+ info.button_info[0].name = "Up";
-+ info.button_info[1].name = "Down";
-+ info.button_info[2].name = "Right";
-+ info.button_info[3].name = "Left";
-+ info.axis_count = 0;
-+ info_init = 1;
-+ }
-+ return &info;
-+}
-+
-+int wmplugin_init(int id, cwiid_wiimote_t *arg_wiimote)
-+{
-+ plugin_id = id;
-+ wiimote = arg_wiimote;
-+ data.buttons = 0;
-+ data.axes[0].valid = 1;
-+ data.axes[1].valid = 1;
-+ if (wmplugin_set_rpt_mode(id, CWIID_RPT_STATUS | CWIID_RPT_NUNCHUK)) {
-+ return -1;
-+ }
-+
-+ return 0;
-+}
-+
-+struct wmplugin_data *wmplugin_exec(int mesg_count, union cwiid_mesg mesg[])
-+{
-+ int i;
-+ enum cwiid_ext_type ext_type = CWIID_EXT_NONE;
-+ struct wmplugin_data *ret = NULL;
-+
-+ for (i=0; i < mesg_count; i++) {
-+ switch (mesg[i].type) {
-+ case CWIID_MESG_STATUS:
-+ if ((mesg[i].status_mesg.ext_type == CWIID_EXT_NUNCHUK) &&
-+ (ext_type != CWIID_EXT_NUNCHUK)) {
-+ if (cwiid_get_acc_cal(wiimote, CWIID_EXT_NUNCHUK, &acc_cal)) {
-+ wmplugin_err(plugin_id, "calibration error");
-+ }
-+ }
-+ ext_type = mesg[i].status_mesg.ext_type;
-+ break;
-+ case CWIID_MESG_NUNCHUK:
-+ process_nunchuk(&mesg[i].nunchuk_mesg);
-+ ret = &data;
-+ break;
-+ default:
-+ break;
-+ }
-+ }
-+
-+ return ret;
-+}
-+
-+static void process_nunchuk(struct cwiid_nunchuk_mesg *mesg)
-+{
-+ double stx=(double)mesg->stick[CWIID_X];
-+ double sty=(double)mesg->stick[CWIID_Y];
-+ data.buttons=0;
-+ if (sty > STICK_MID_VAL+STICK_NEUTRAL) data.buttons |= STICK_KEY_UP;
-+ if (sty < STICK_MID_VAL-STICK_NEUTRAL) data.buttons |= STICK_KEY_DOWN;
-+ if (stx > STICK_MID_VAL+STICK_NEUTRAL) data.buttons |= STICK_KEY_RIGHT;
-+ if (stx < STICK_MID_VAL-STICK_NEUTRAL) data.buttons |= STICK_KEY_LEFT;
-+}
-+
-Index: cwiid-0.6.00+svn184.orig/wminput/configs/fps_config
-===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ cwiid-0.6.00+svn184.orig/wminput/configs/fps_config 2009-03-27 13:15:50.000000000 +0100
-@@ -0,0 +1,32 @@
-+# Fps config for wminput by kyrlian
-+# needs plugins ir_fps and nunchuk_kb
-+# available from http://kyrlian.free.fr/binaries/cwiid/latest/
-+# wminput source and info at http://abstrakraft.org/cwiid/
-+
-+# IR for mouse REL - fps style
-+Plugin.ir_fps.X = REL_X
-+Plugin.ir_fps.Y = REL_Y
-+
-+#custom buttons
-+Wiimote.A = BTN_LEFT
-+Wiimote.B = BTN_RIGHT
-+Wiimote.Up = KEY_UP
-+Wiimote.Down = KEY_DOWN
-+Wiimote.Left = KEY_LEFT
-+Wiimote.Right = KEY_RIGHT
-+Wiimote.Minus = KEY_PAGEDOWN
-+Wiimote.Plus = KEY_PAGEUP
-+Wiimote.Home = KEY_ESC
-+
-+Wiimote.1 = KEY_TAB
-+Wiimote.2 = KEY_ESC
-+
-+Nunchuk.C = KEY_C
-+Nunchuk.Z = KEY_SPACE
-+
-+#plugin for nunchuk stick
-+Plugin.nunchuk_kb.Up = KEY_W
-+Plugin.nunchuk_kb.Down = KEY_S
-+Plugin.nunchuk_kb.Left = KEY_A
-+Plugin.nunchuk_kb.Right = KEY_D
-+
-Index: cwiid-0.6.00+svn184.orig/configure.ac
-===================================================================
---- cwiid-0.6.00+svn184.orig.orig/configure.ac 2008-06-24 21:43:05.000000000 +0200
-+++ cwiid-0.6.00+svn184.orig/configure.ac 2009-03-27 13:15:50.000000000 +0100
-@@ -142,8 +142,10 @@
- [wminput/Makefile]
- [wminput/plugins/Makefile]
- [wminput/plugins/ir_ptr/Makefile]
-+ [wminput/plugins/ir_fps/Makefile]
- [wminput/plugins/acc/Makefile]
- [wminput/plugins/nunchuk_acc/Makefile]
-+ [wminput/plugins/nunchuk_kb/Makefile]
- [wminput/plugins/led/Makefile]
- [wminput/plugins/nunchuk_stick2btn/Makefile]
- [lswm/Makefile]
diff --git a/misc/cwiid/bluetooth-linker.patch b/misc/cwiid/bluetooth-linker.patch
deleted file mode 100644
index dc22b918d5e5..000000000000
--- a/misc/cwiid/bluetooth-linker.patch
+++ /dev/null
@@ -1,48 +0,0 @@
-diff -Naur cwiid-0.6.00.orig/lswm/Makefile.in cwiid-0.6.00/lswm/Makefile.in
---- cwiid-0.6.00.orig/lswm/Makefile.in 2007-07-28 18:47:03.000000000 +0000
-+++ cwiid-0.6.00/lswm/Makefile.in 2012-09-19 01:36:44.624050597 +0000
-@@ -8,7 +8,7 @@
-
- CFLAGS += -I@top_builddir@/libcwiid
- LDFLAGS += -L@top_builddir@/libcwiid
--LDLIBS += -lcwiid
-+LDLIBS += -lcwiid -lbluetooth
- INST_DIR = @bindir@
-
- include $(COMMON)/include/app.mak
-diff -Naur cwiid-0.6.00.orig/wmdemo/Makefile.in cwiid-0.6.00/wmdemo/Makefile.in
---- cwiid-0.6.00.orig/wmdemo/Makefile.in 2007-04-11 02:57:27.000000000 +0000
-+++ cwiid-0.6.00/wmdemo/Makefile.in 2012-09-19 01:37:25.008051673 +0000
-@@ -8,7 +8,7 @@
-
- CFLAGS += -I@top_builddir@/libcwiid
- LDFLAGS += -L@top_builddir@/libcwiid
--LDLIBS += -lcwiid
-+LDLIBS += -lcwiid -lbluetooth
- INST_DIR = @bindir@
-
- include $(COMMON)/include/app.mak
-diff -Naur cwiid-0.6.00.orig/wmgui/Makefile.in cwiid-0.6.00/wmgui/Makefile.in
---- cwiid-0.6.00.orig/wmgui/Makefile.in 2007-07-28 18:47:03.000000000 +0000
-+++ cwiid-0.6.00/wmgui/Makefile.in 2012-09-19 01:31:32.977042284 +0000
-@@ -8,7 +8,7 @@
-
- CFLAGS += @GTK_CFLAGS@ -I@top_builddir@/libcwiid
- LDFLAGS += -L@top_builddir@/libcwiid
--LDLIBS += @GTK_LIBS@ -lm -lcwiid
-+LDLIBS += @GTK_LIBS@ -lm -lcwiid -lbluetooth
- INST_DIR = @bindir@
-
- include $(COMMON)/include/app.mak
-diff -Naur cwiid-0.6.00.orig/wminput/Makefile.in cwiid-0.6.00/wminput/Makefile.in
---- cwiid-0.6.00.orig/wminput/Makefile.in 2007-07-28 18:47:03.000000000 +0000
-+++ cwiid-0.6.00/wminput/Makefile.in 2012-09-19 01:38:42.031053733 +0000
-@@ -14,7 +14,7 @@
- -DWMINPUT_CONFIG_DIR=\"$(WMINPUT_CONFIG_DIR)\" \
- -DCWIID_PLUGINS_DIR=\"$(CWIID_PLUGINS_DIR)\"
-
--LDLIBS += -lcwiid -ldl
-+LDLIBS += -lcwiid -ldl -lbluetooth -lpthread
- LDFLAGS += -L@top_builddir@/libcwiid -rdynamic
- INST_DIR = @bindir@
-
diff --git a/misc/cwiid/cwiid.SlackBuild b/misc/cwiid/cwiid.SlackBuild
index f419b3ae1462..7f79bfe7fedc 100644
--- a/misc/cwiid/cwiid.SlackBuild
+++ b/misc/cwiid/cwiid.SlackBuild
@@ -6,6 +6,12 @@
# Licensed under the WTFPL. See http://www.wtfpl.net/txt/copying/ for details.
+# 20210910 bkw:
+# - Upgrade to 0.6.91_2 (Debian's 0.6.91-2).
+# - Actually apply SLKCFLAGS.
+# - Use icon, .desktop, lswm.1 from Debian tarball instead of
+# including in SBo git.
+
# 20170306 bkw:
# - Add --disable-ldconfig
@@ -18,11 +24,14 @@
# - Fixed permissions of config files and header
# - Added ir_fps and nunchuk_kb plugins
+# https://deb.debian.org/debian/pool/main/c/cwiid/cwiid_0.6.91-2.debian.tar.xz
+# https://deb.debian.org/debian/pool/main/c/cwiid/cwiid_0.6.91.orig.tar.xz
+
cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=cwiid
-VERSION=${VERSION:-0.6.00+svn201}
-BUILD=${BUILD:-3}
+VERSION=${VERSION:-0.6.91_2}
+BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
@@ -34,9 +43,6 @@ if [ -z "$ARCH" ]; then
esac
fi
-# If the variable PRINT_PACKAGE_NAME is set, then this script will report what
-# the name of the created package would be, and then exit. This information
-# could be useful to other scripts.
if [ ! -z "${PRINT_PACKAGE_NAME}" ]; then
echo "$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.$PKGTYPE"
exit 0
@@ -62,64 +68,71 @@ fi
set -e
+TARVER=${VERSION/_*}
+DEBVER=${VERSION/*_}
+
+LIBDIR=/usr/lib$LIBDIRSUFFIX
+PKGLIB=$PKG/$LIBDIR
+
rm -rf $PKG
mkdir -p $TMP $PKG/usr $PKG/etc $OUTPUT
cd $TMP
-rm -rf $PRGNAM-$VERSION
-tar xvf $CWD/${PRGNAM}_$VERSION.orig.tar.gz
-cd $PRGNAM-$VERSION
+rm -rf $PRGNAM
+tar xvf $CWD/${PRGNAM}_$TARVER.orig.tar.xz
+cd $PRGNAM
+tar xvf $CWD/${PRGNAM}_$TARVER-$DEBVER.debian.tar.xz
chown -R root:root .
-find -L . \
- \( -perm 777 -o -perm 775 -o -perm 750 -o -perm 711 -o -perm 555 -o -perm 511 \) \
- -exec chmod 755 {} \; -o \
- \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
- -exec chmod 644 {} \;
+find -L . -perm /111 -a \! -perm 755 -a -exec chmod 755 {} \+ -o \
+ \! -perm /111 -a \! -perm 644 -a -exec chmod 644 {} \+
-# Underlinking fix (add -lbluetooth)
-patch -p1 < $CWD/bluetooth-linker.patch
+# this patch is debian-specific (calls dpkg):
+rm -f debian/patches/python-setup.py.patch
-# Add ir_fps and nunchuk_kb plugins (patch comes from Debian)
-patch -p1 < $CWD/"add_other_plugins_#487498.patch"
+for i in $( cat debian/patches/series ); do
+ [ -e $i ] && patch -p1 < debian/patches/$i
+done
autoreconf -if
-CFLAGS="$SLKCFLAGS" \
-CXXFLAGS="$SLKCFLAGS" \
./configure \
--disable-ldconfig \
--prefix=/usr \
- --libdir=/usr/lib$LIBDIRSUFFIX \
+ --libdir=$LIBDIR \
--sysconfdir=/etc \
--localstatedir=/var \
--docdir=/usr/doc/$PRGNAM-$VERSION \
--mandir=/usr/man \
--build=$ARCH-slackware-linux
-make
+# configure script ignores CFLAGS in the env. Can't use CFLAGS
+# nor DEBUGFLAGS with make... sneak them in this way.
+make WARNFLAGS="-Wall $SLKCFLAGS"
make install DESTDIR=$PKG
-# Config and include files get installed +x, fix
-find $PKG/etc/cwiid/wminput/ -maxdepth 1 -a -type f | xargs chmod 644
-chmod 644 $PKG/usr/include/*.h
+# no install-strip...
+strip $PKG/usr/bin/* \
+ $PKGLIB/*.so.?.? \
+ $PKGLIB/$PRGNAM/plugins/*.so \
+ $PKGLIB/python*/site-packages/*.so
-# Remove static library, configure doesn't accept --disable-static
-rm -f $PKG/usr/lib$LIBDIRSUFFIX/libcwiid.a
+# Header gets installed +x, fix
+chmod 644 $PKG/etc/cwiid/wminput/*
-find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \
- | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true
+# Remove static library, configure doesn't accept --disable-static
+rm -f $PKGLIB/libcwiid.a
-find $PKG/usr/man -type f -exec gzip -9 {} \;
+gzip -9 $PKG/usr/man/man1/*
-# lswm man page borrowed from Debian
-gzip -9c $CWD/lswm.1 > $PKG/usr/man/man1/lswm.1.gz
+# Use Debian's extra man page, desktop file, icons.
+gzip -9c debian/lswm.1 > $PKG/usr/man/man1/lswm.1.gz
-# icon borrowed from Debian
mkdir -p $PKG/usr/share/pixmaps
-cat $CWD/wmgui.xpm > $PKG/usr/share/pixmaps/wmgui.xpm
+cp -a debian/icons/*.xpm $PKG/usr/share/pixmaps
-# .desktop borrowed from Debian and fixed so it validates
mkdir -p $PKG/usr/share/applications
-cat $CWD/wmgui.desktop > $PKG/usr/share/applications/wmgui.desktop
+sed -e '/^Icon/s,=.*,=/usr/share/pixmaps/wmgui.xpm,' \
+ -e '/^Categories/s,$,;Settings;,' \
+ debian/menus/wmgui.desktop > $PKG/usr/share/applications/wmgui.desktop
# init script written for this build
mkdir -p $PKG/etc/rc.d/
diff --git a/misc/cwiid/cwiid.info b/misc/cwiid/cwiid.info
index f2e8fb6625b1..49aa09c93b14 100644
--- a/misc/cwiid/cwiid.info
+++ b/misc/cwiid/cwiid.info
@@ -1,8 +1,10 @@
PRGNAM="cwiid"
-VERSION="0.6.00+svn201"
-HOMEPAGE="http://abstrakraft.org/cwiid/"
-DOWNLOAD="http://ftp.debian.org/debian/pool/main/c/cwiid/cwiid_0.6.00+svn201.orig.tar.gz"
-MD5SUM="a57605bba039dd2d4460574574f950e7"
+VERSION="0.6.91_2"
+HOMEPAGE="https://packages.debian.org/sid/libcwiid1"
+DOWNLOAD="https://deb.debian.org/debian/pool/main/c/cwiid/cwiid_0.6.91.orig.tar.xz \
+ https://deb.debian.org/debian/pool/main/c/cwiid/cwiid_0.6.91-2.debian.tar.xz"
+MD5SUM="3af0651c9d81693d39bb69675885c3d7 \
+ 0a3361ed2a29e4b68d6798e2347725de"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES=""
diff --git a/misc/cwiid/doinst.sh b/misc/cwiid/doinst.sh
index 4a2e19e598c1..e52d1fc17033 100644
--- a/misc/cwiid/doinst.sh
+++ b/misc/cwiid/doinst.sh
@@ -1,15 +1,11 @@
-
config() {
NEW="$1"
OLD="$(dirname $NEW)/$(basename $NEW .new)"
- # If there's no config file by that name, mv it over:
if [ ! -r $OLD ]; then
mv $NEW $OLD
elif [ "$(cat $OLD | md5sum)" = "$(cat $NEW | md5sum)" ]; then
- # toss the redundant copy
rm $NEW
fi
- # Otherwise, we leave the .new copy for the admin to consider...
}
preserve_perms() {
diff --git a/misc/cwiid/lswm.1 b/misc/cwiid/lswm.1
deleted file mode 100644
index e51ca794b219..000000000000
--- a/misc/cwiid/lswm.1
+++ /dev/null
@@ -1,54 +0,0 @@
-.\" Hey, EMACS: -*- nroff -*-
-.\" First parameter, NAME, should be all caps
-.\" Second parameter, SECTION, should be 1-8, maybe w/ subsection
-.\" other parameters are allowed: see man(7), man(1)
-.TH LSWM 1 "janvier 18, 2007"
-.\" Please adjust this date whenever revising the manpage.
-.\"
-.\" Some roff macros, for reference:
-.\" .nh disable hyphenation
-.\" .hy enable hyphenation
-.\" .ad l left justify
-.\" .ad b justify to both left and right margins
-.\" .nf disable filling
-.\" .fi enable filling
-.\" .br insert line break
-.\" .sp <n> insert n+1 empty lines
-.\" for manpage-specific macros, see man(7)
-.SH NAME
-lswm \- discover new wiimotes
-.SH SYNOPSIS
-.B lswm
-.RI [ options ]
-.br
-.SH DESCRIPTION
-This manual page documents briefly the
-.B lswm
-command.
-.PP
-.\" TeX users may be more comfortable with the \fB<whatever>\fP and
-.\" \fI<whatever>\fP escape sequences to invode bold face and italics,
-.\" respectively.
-.SH OPTIONS
-.TP
-.B \-h
-Show summary of options.
-.TP
-.B \-a
-List all bluetooth devices (not just wiimotes)
-.TP
-.B \-l
-Long format (device details)
-.TP
-.B \-q
-Quiet mode
-
-.SH SEE ALSO
-.BR wminput (1),
-.BR wmgui (1),
-.br
-.SH AUTHOR
-wmgui was written by L. Donnie Smith <cwiid@abstrakraft.org>
-.PP
-This manual page was written by Romain Beauxis <toots@rastageeks.org>,
-for the Debian project (but may be used by others).
diff --git a/misc/cwiid/wmgui.desktop b/misc/cwiid/wmgui.desktop
deleted file mode 100644
index 39030cb597c0..000000000000
--- a/misc/cwiid/wmgui.desktop
+++ /dev/null
@@ -1,11 +0,0 @@
-[Desktop Entry]
-Name=Wmgui
-GenericName=Graphical user interface to the wiimote
-GenericName[fr]=Interface graphique pour la wiimote
-Comment=Simple GTK gui to the wiimote to test and display the wiimote data.
-Comment[fr]=Simple interface graphique pour la wiimote pour tester et afficher les informations de la wiimote.
-Exec=wmgui
-Icon=wmgui
-Terminal=false
-Type=Application
-Categories=Utility;HardwareSettings;Settings;
diff --git a/misc/cwiid/wmgui.xpm b/misc/cwiid/wmgui.xpm
deleted file mode 100644
index 6f66669f67c3..000000000000
--- a/misc/cwiid/wmgui.xpm
+++ /dev/null
@@ -1,552 +0,0 @@
-/* XPM */
-static char * wmgui_xpm[] = {
-"39 45 504 2",
-" c None",
-". c #010C2D",
-"+ c #000B2B",
-"@ c #000C2B",
-"# c #000B2A",
-"$ c #000C2A",
-"% c #000B29",
-"& c #000A29",
-"* c #000C30",
-"= c #000B2E",
-"- c #000A2D",
-"; c #000A2B",
-"> c #000A2A",
-", c #000B2D",
-"' c #000D2F",
-") c #000F35",
-"! c #000D33",
-"~ c #000C31",
-"{ c #000B30",
-"] c #000C2E",
-"^ c #000C2D",
-"/ c #000B2C",
-"( c #000D32",
-"_ c #010F35",
-": c #00153C",
-"< c #001139",
-"[ c #001037",
-"} c #000E35",
-"| c #000E34",
-"1 c #000D31",
-"2 c #000C2C",
-"3 c #000C2F",
-"4 c #000D34",
-"5 c #001138",
-"6 c #001840",
-"7 c #00153E",
-"8 c #00133C",
-"9 c #00123A",
-"0 c #001038",
-"a c #000F37",
-"b c #030F31",
-"c c #71737A",
-"d c #B0B0B1",
-"e c #B8B8B8",
-"f c #BCBCBC",
-"g c #BDBDBD",
-"h c #BEBEBE",
-"i c #BFBFBF",
-"j c #A4A5A7",
-"k c #2A3145",
-"l c #000F36",
-"m c #00143C",
-"n c #001C45",
-"o c #001943",
-"p c #001741",
-"q c #00163F",
-"r c #00143D",
-"s c #00123C",
-"t c #646872",
-"u c #E5E5E6",
-"v c #E5DDDF",
-"w c #DBD8D9",
-"x c #F5F5F5",
-"y c #F6F6F6",
-"z c #F8F8F8",
-"A c #F9F9F9",
-"B c #FAFAFA",
-"C c #DCDCDC",
-"D c #081432",
-"E c #00123B",
-"F c #001841",
-"G c #01214B",
-"H c #001D48",
-"I c #001B46",
-"J c #001A44",
-"K c #001842",
-"L c #001742",
-"M c #001640",
-"N c #A1A1A1",
-"O c #E8E8E8",
-"P c #DBD4D5",
-"Q c #DCD7D8",
-"R c #F7F7F7",
-"S c #F4F4F4",
-"T c #293449",
-"U c #001C46",
-"V c #00214C",
-"W c #00204B",
-"X c #001F49",
-"Y c #001E48",
-"Z c #001D47",
-"` c #001C47",
-" . c #9D9D9D",
-".. c #EFEFEF",
-"+. c #EBEBEB",
-"@. c #EDEDED",
-"#. c #D7D7D7",
-"$. c #D1D1D1",
-"%. c #2A374D",
-"&. c #001A46",
-"*. c #001B45",
-"=. c #001E49",
-"-. c #00244E",
-";. c #00234E",
-">. c #00224D",
-",. c #00214D",
-"'. c #00214E",
-"). c #00204D",
-"!. c #F2F2F2",
-"~. c #F1F1F1",
-"{. c #B9B9B9",
-"]. c #2A3A50",
-"^. c #00204C",
-"/. c #01254F",
-"(. c #00244F",
-"_. c #002550",
-":. c #002551",
-"<. c #002652",
-"[. c #002653",
-"}. c #002753",
-"|. c #002754",
-"1. c #002755",
-"2. c #002654",
-"3. c #D6D6D6",
-"4. c #C1C1C1",
-"5. c #E2E2E2",
-"6. c #D0D0D0",
-"7. c #2A3D54",
-"8. c #002552",
-"9. c #002450",
-"0. c #00224C",
-"a. c #002956",
-"b. c #002B58",
-"c. c #002C5A",
-"d. c #002D5B",
-"e. c #002D5C",
-"f. c #002D5E",
-"g. c #002C5C",
-"h. c #D9D9D9",
-"i. c #CBCBCB",
-"j. c #E1E1E1",
-"k. c #E4E4E4",
-"l. c #D4D4D4",
-"m. c #2A4058",
-"n. c #002C5B",
-"o. c #002B59",
-"p. c #002A58",
-"q. c #002854",
-"r. c #00204A",
-"s. c #002F5E",
-"t. c #003261",
-"u. c #003363",
-"v. c #003465",
-"w. c #003466",
-"x. c #003364",
-"y. c #F3F3F3",
-"z. c #CACACA",
-"A. c #2A435C",
-"B. c #003365",
-"C. c #003263",
-"D. c #003262",
-"E. c #00305F",
-"F. c #002E5C",
-"G. c #002855",
-"H. c #003463",
-"I. c #003868",
-"J. c #003A6C",
-"K. c #003C6E",
-"L. c #003C6F",
-"M. c #003B6D",
-"N. c #DFDFDF",
-"O. c #2A4760",
-"P. c #003A6D",
-"Q. c #00396A",
-"R. c #003666",
-"S. c #003362",
-"T. c #002957",
-"U. c #003160",
-"V. c #003767",
-"W. c #004173",
-"X. c #004376",
-"Y. c #004478",
-"Z. c #CDCDCD",
-"`. c #D3D3D3",
-" + c #2A4B65",
-".+ c #004174",
-"++ c #003F71",
-"@+ c #003B6C",
-"#+ c #004578",
-"$+ c #004A7D",
-"%+ c #004D81",
-"&+ c #004D7F",
-"*+ c #C9C9C9",
-"=+ c #D2D2D2",
-"-+ c #2A506A",
-";+ c #004B7F",
-">+ c #00487C",
-",+ c #003E70",
-"'+ c #003769",
-")+ c #003161",
-"!+ c #001944",
-"~+ c #001C48",
-"{+ c #00214F",
-"]+ c #002D5D",
-"^+ c #00396C",
-"/+ c #004F82",
-"(+ c #005588",
-"_+ c #005888",
-":+ c #2A556E",
-"<+ c #005386",
-"[+ c #00467A",
-"}+ c #003F72",
-"|+ c #00386A",
-"1+ c #003162",
-"2+ c #002B5B",
-"3+ c #002554",
-"4+ c #001B47",
-"5+ c #011943",
-"6+ c #001641",
-"7+ c #001844",
-"8+ c #001C49",
-"9+ c #002150",
-"0+ c #002757",
-"a+ c #004175",
-"b+ c #004A7E",
-"c+ c #005C8D",
-"d+ c #006290",
-"e+ c #CFCFCF",
-"f+ c #F0F0F0",
-"g+ c #2A5A71",
-"h+ c #005A8C",
-"i+ c #005184",
-"j+ c #004073",
-"k+ c #00386B",
-"l+ c #003163",
-"m+ c #002B5C",
-"n+ c #002655",
-"o+ c #00204E",
-"p+ c #001B48",
-"q+ c #001843",
-"r+ c #001541",
-"s+ c #001845",
-"t+ c #001C4A",
-"u+ c #002151",
-"v+ c #002758",
-"w+ c #002D5F",
-"x+ c #003366",
-"y+ c #003A6E",
-"z+ c #004276",
-"A+ c #005688",
-"B+ c #006291",
-"C+ c #006B95",
-"D+ c #2A5E74",
-"E+ c #005F8F",
-"F+ c #005486",
-"G+ c #00497D",
-"H+ c #004074",
-"I+ c #00386C",
-"J+ c #003164",
-"K+ c #002B5D",
-"L+ c #002556",
-"M+ c #00204F",
-"N+ c #001B49",
-"O+ c #001744",
-"P+ c #011843",
-"Q+ c #001642",
-"R+ c #001C4B",
-"S+ c #002152",
-"T+ c #002659",
-"U+ c #002C60",
-"V+ c #003267",
-"W+ c #003A6F",
-"X+ c #004377",
-"Y+ c #004D80",
-"Z+ c #005989",
-"`+ c #006693",
-" @ c #007198",
-".@ c #2A6075",
-"+@ c #006390",
-"@@ c #005687",
-"#@ c #004B7E",
-"$@ c #004075",
-"%@ c #00386D",
-"&@ c #003165",
-"*@ c #002B5E",
-"=@ c #002557",
-"-@ c #002050",
-";@ c #011B45",
-">@ c #001643",
-",@ c #001846",
-"'@ c #001B4C",
-")@ c #002053",
-"!@ c #002559",
-"~@ c #002B60",
-"{@ c #003268",
-"]@ c #003A70",
-"^@ c #004F81",
-"/@ c #005C8A",
-"(@ c #006994",
-"_@ c #007499",
-":@ c #D8D8D8",
-"<@ c #1D5468",
-"[@ c #006691",
-"}@ c #005887",
-"|@ c #004C7E",
-"1@ c #003065",
-"2@ c #002A5E",
-"3@ c #002457",
-"4@ c #001F51",
-"5@ c #001A4A",
-"6@ c #001745",
-"7@ c #001847",
-"8@ c #001B4D",
-"9@ c #001F53",
-"0@ c #002459",
-"a@ c #002B61",
-"b@ c #003B70",
-"c@ c #005181",
-"d@ c #005D8A",
-"e@ c #006B94",
-"f@ c #00769A",
-"g@ c #DADADA",
-"h@ c #C2C2C2",
-"i@ c #BBC2C7",
-"j@ c #AABAC6",
-"k@ c #ACACAC",
-"l@ c #C5C5C5",
-"m@ c #C3C3C3",
-"n@ c #195164",
-"o@ c #006792",
-"p@ c #005A88",
-"q@ c #004E7F",
-"r@ c #00386E",
-"s@ c #003066",
-"t@ c #00295E",
-"u@ c #002357",
-"v@ c #001E51",
-"w@ c #001A4B",
-"x@ c #00245A",
-"y@ c #004679",
-"z@ c #005281",
-"A@ c #005E8B",
-"B@ c #00779A",
-"C@ c #E5E5E5",
-"D@ c #C7C7C7",
-"E@ c #D5D5D5",
-"F@ c #CBCED0",
-"G@ c #B4BDC4",
-"H@ c #DDDDDD",
-"I@ c #00396E",
-"J@ c #00285F",
-"K@ c #002258",
-"L@ c #001D51",
-"M@ c #001743",
-"N@ c #001945",
-"O@ c #003269",
-"P@ c #005282",
-"Q@ c #00779B",
-"R@ c #ECECEC",
-"S@ c #011B46",
-"T@ c #00255A",
-"U@ c #003368",
-"V@ c #005D8B",
-"W@ c #006A94",
-"X@ c #EEEEEE",
-"Y@ c #E4E5E8",
-"Z@ c #E1E3E6",
-"`@ c #EAEBEC",
-" # c #195064",
-".# c #005988",
-"+# c #004D7E",
-"@# c #001C4C",
-"## c #002153",
-"$# c #005B8A",
-"%# c #006894",
-"&# c #007399",
-"*# c #E9E9EB",
-"=# c #D6D7DB",
-"-# c #C9CACE",
-";# c #E6E7EA",
-"># c #194F64",
-",# c #006591",
-"'# c #001F50",
-")# c #002759",
-"!# c #002D60",
-"~# c #003367",
-"{# c #003B6F",
-"]# c #005889",
-"^# c #006592",
-"/# c #006D96",
-"(# c #E9E9EA",
-"_# c #DBDCDF",
-":# c #D0D1D4",
-"<# c #E5E6E9",
-"[# c #194D63",
-"}# c #00618F",
-"|# c #005586",
-"1# c #001A49",
-"2# c #001D4B",
-"3# c #002251",
-"4# c #002858",
-"5# c #002E5F",
-"6# c #003467",
-"7# c #004277",
-"8# c #005587",
-"9# c #9B9B9B",
-"0# c #DBDCE0",
-"a# c #D1D2D6",
-"b# c #194A61",
-"c# c #005D8D",
-"d# c #005285",
-"e# c #001D4A",
-"f# c #002250",
-"g# c #002857",
-"h# c #002E5E",
-"i# c #004275",
-"j# c #005084",
-"k# c #005789",
-"l# c #005A89",
-"m# c #999999",
-"n# c #E8E9EB",
-"o# c #19455E",
-"p# c #004E82",
-"q# c #00477B",
-"r# c #003F73",
-"s# c #002555",
-"t# c #001A45",
-"u# c #001D49",
-"v# c #00224F",
-"w# c #002856",
-"x# c #002E5D",
-"y# c #003464",
-"z# c #004E80",
-"A# c #19405A",
-"B# c #003E71",
-"C# c #00376A",
-"D# c #00224E",
-"E# c #003869",
-"F# c #003E6F",
-"G# c #004579",
-"H# c #004477",
-"I# c #193B55",
-"J# c #003768",
-"K# c #003565",
-"L# c #003969",
-"M# c #003C70",
-"N# c #003B6E",
-"O# c #E9E9E9",
-"P# c #193751",
-"Q# c #003D71",
-"R# c #003D70",
-"S# c #002A57",
-"T# c #003567",
-"U# c #EAEAEA",
-"V# c #19334C",
-"W# c #003668",
-"X# c #003566",
-"Y# c #00234F",
-"Z# c #002C5D",
-"`# c #E3E3E3",
-" $ c #192F48",
-".$ c #002F60",
-"+$ c #00214B",
-"@$ c #002756",
-"#$ c #E7E7E7",
-"$$ c #B7B7B7",
-"%$ c #192C44",
-"&$ c #002451",
-"*$ c #192940",
-"=$ c #01244F",
-"-$ c #989898",
-";$ c #E4EAED",
-">$ c #EAECEC",
-",$ c #19263D",
-"'$ c #001F4A",
-")$ c #011F49",
-"!$ c #898989",
-"~$ c #E6E6E6",
-"{$ c #B6B6B6",
-"]$ c #131F36",
-"^$ c #001B44",
-"/$ c #353A45",
-"($ c #E0E0E0",
-"_$ c #717171",
-":$ c #011032",
-"<$ c #001740",
-"[$ c #00173F",
-"}$ c #00133B",
-"|$ c #000F33",
-"1$ c #242A38",
-"2$ c #56575B",
-"3$ c #5E6062",
-"4$ c #5F6063",
-"5$ c #5D5E61",
-"6$ c #43454C",
-"7$ c #09132D",
-"8$ c #00143B",
-"9$ c #000E33",
-"0$ c #000E36",
-"a$ c #000B2F",
-"b$ c #000C32",
-"c$ c #011137",
-"d$ c #000A2C",
-"e$ c #010B2D",
-" ",
-" . + @ @ # $ $ % & ",
-" * = - ; > > & & & & > ; , ' ",
-" ) ! ~ { ] ^ ^ , , / / , , , = * ( _ ",
-" : < [ } | ! ( 1 ^ ^ ^ ^ 2 2 3 1 1 ( 4 ) 5 ",
-" 6 7 8 9 < 0 a b c d e f g h i j k ) l a 0 9 m ",
-" n o p q 7 r 8 s t u v w x y z A B C D E E 8 r q F ",
-" G H I J o K L p M N O P Q x y R A B S T M M p p K J U ",
-" V W X Y Z ` ` ` I ...+.@.#.$.R A B S %.&.*.*.I U Z =.W ",
-" -.;.;.>.>.,.,.,.'.). ...!.~.$.{.S z B S ].).^.W W W W V >./. ",
-" -.(._.:.<.<.[.}.|.1.2. ...3.4.5.@.i 6.B S 7.2.[.8.:._.9.(.(.-. ",
-" 0.;.:.|.a.b.c.d.e.f.g. ...h.i.j.k.l.l.B S m.g.n.o.p.a.q.<.9.;.>. ",
-" X r.>.:.a.c.s.t.u.v.w.x. ...!.y.z.g !.A B S A.B.C.D.E.F.o.G.9.>.W ",
-" Z =.,.8.p.s.H.I.J.K.L.M. ...!.y.5.N.R A B S O.P.J.Q.R.S.F.T.:.V =.Y ",
-" *.H ,.[.o.U.V.K.W.X.Y.X. ...!.!.Z.`.y A B S +X..+++@+R.E.p.8.^.H I ",
-" K J H '.2.n.S.Q.++#+$+%+&+ ...!.z.*+`.=+A B S -+;+>+X.,+'+)+o.8.^.` J ",
-" p !+~+{+1.]+x.^+.+>+/+(+_+ ...!.i.6.6.6.A B S :+<+%+[+}+|+1+2+3+).4+o 5+ ",
-" 6+7+8+9+0+f.B.P.a+b+<+c+d+ ...!.+.$.e+f+A B S g+h+i+>+j+k+l+m+n+o+p+q+6+ ",
-" r+s+t+u+v+w+x+y+z+;+A+B+C+ ...!.y.x y R A B S D+E+F+G+H+I+J+K+L+M+N+O+6+ ",
-" P+Q+s+R+S+T+U+V+W+X+Y+Z+`+ @ ...!.y.x y R A B S .@+@@@#@$@%@&@*@=@-@N+O+Q+ ",
-" ;@>@,@'@)@!@~@{@]@Y.^@/@(@_@ ...+.!.!.f+R ~.z :@<@[@}@|@a+%@1@2@3@4@5@6@7+ ",
-" !+>@7@8@9@0@a@{@b@#+c@d@e@f@ .g@h@z.i@j@3.k@l@m@n@o@p@q@z+r@s@t@u@v@w@6@O+` ",
-" q+>@7@8@9@x@a@{@b@y@z@A@e@B@ .C@D@E@F@G@H@{.=+m@n@o@p@q@X.I@s@J@K@L@w@6@M@N@",
-" J >@7@8@9@x@a@O@b@y@P@A@C+Q@ ...!.y.f+R@R@R@R@m@n@o@p@q@X.I@s@J@K@L@w@6@O+` ",
-" S@>@,@8@)@T@a@U@b@#+c@V@W@f@ ...!.X@Y@Z@`@R@R@m@ #[@.#+#z+%@s@t@u@v@5@6@7+ ",
-" o >@,@@###T+U+U@b@Y.^@$#%#&# ...X@*#=#-#;#R@R@m@>#,#}@|@a+%@1@2@3@'#5@6@M@ ",
-" Q+,@@#S+)#!#~#{#X+Y+]#^#/# .@.R@(#_#:#<#R@R@m@[#}#|#$+$@%@&@*@=@'#1#6@Q+ ",
-" 6+s+2#3#4#5#6#{#7#;+8#E+,#9#+.R@*#0#a#;#R@R@m@b#c#d#>+H+I+J+K+L+M+N+O+Q+ ",
-" L N@e#f#g#h#w.y+i#G+j#k#l#m#+.R@R@*#n#+.R@R@m@o#A+p#q#r#k+l+m+s#o+p+7+P+ ",
-" K t#u#v#w#x#y#J.j+[+b+p#z#m#+.R@R@e+*+O R@R@m@A#p#b+#+B#C#1+2+3+).~+!+ ",
-" I =.D#1.d.u.E#F#.+X+G#H#m#+.R@j.6.C@*+R@R@m@I#[+H#.+K.J#)+o.8.^.` t# ",
-" Z =.D#|.c.U.K#L#@+K.M#N#m#+.R@O#h l@E@R@R@m@P#Q#R#M.Q.y#s.p.:.^.H Z ",
-" X W D#<.S#e.E.S.y#w.T#B.m#+.R@R@e+h@U#R@R@m@V#W#T#X#u.U.d.a.9.V =. ",
-" V Y#:.|.a.b.c.e.]+h#Z#m#+.R@`#$.3.i.R@R@m@ $.$5#x#e.c.S#}.9.>.+$ ",
-" -.Y#9.9.:.<.[.|.1.@$n+m#+.R@#$$$=+=+R@R@m@%$4#g#G.|.}.<.&$Y#;. ",
-" ;.>.,.V V V ,.'.{+o+m#+.R@R@5.#.R@R@R@m@*$f#v#D#D#>.>.D#;.=$ ",
-" W =.H Z ` ` ` ~+4+-$+.;$>$#$U#+.O R@m@,$8+H H H H =.'$V ",
-" )$U J o K F p p 6+!$~$R@R@R@R@R@R@+.{$]$K K K o J *.H ",
-" ^$F q 7 r m 8 8 /${$C j.j.j.j.($Z._$:$r r 7 q <$o ",
-" [$m }$< 5 [ [ |$1$2$3$4$4$4$5$6$7$0 0 < 9 m 7 ",
-" 8$5 l } | ! ! ! ! 9$9$9$9$9$9$9$9$| 0$[ 9 ",
-" ) ! ~ { a$] ] ] ] ] ] ] ] a$* b$4 c$ ",
-" * = d$; ; > > > > ; ; - = 1 ",
-" e$; @ @ # $ @ # ; ",
-" "};